如何复制出所有值为0的字典?现有实现是否有更简便方法?
更简便的复制全0值字典的方法
当然有!而且不止一种更简便的方式,直接给你看Python里最常用的两种实现:
方法1:字典推导式
这是最直观也最Pythonic的方式,一行代码就能完成:
dict1 = {'key1':0, 'key2':10, 'key3':110} dict2 = {key: 0 for key in dict1}
字典推导式专门用来快速生成新字典,这里直接遍历原字典的所有键,给每个键赋值0,逻辑清晰,可读性拉满。
方法2:使用dict.fromkeys()方法
这个方法是Python为这类场景量身定做的,代码更简洁:
dict2 = dict.fromkeys(dict1, 0) # 或者明确指定键:dict.fromkeys(dict1.keys(), 0),效果完全一样
fromkeys()接收两个参数:第一个是要作为键的可迭代对象(这里原字典本身迭代的就是键,所以直接传dict1就行),第二个是所有键对应的统一值,完美匹配你的需求,一行搞定,效率也很高。
对比你原来的方法,这两种都不需要先复制字典再循环修改,一步到位,代码更短也更易维护~
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

