我可以做什么:
dict1 = {'key1':0, 'key2':10, 'key3':110}
dict2 = dict(dict1)
for key in dict2:
dict2[key] = 0
print(dict2) # {'key1':0, 'key2':0, 'key3':0}
Run Code Online (Sandbox Code Playgroud)
有一个简单的方法吗?
最简单,使用dict comprehension:
>>> {k:0 for k in dict1}
Run Code Online (Sandbox Code Playgroud)
#driver值:
IN : dict1 = {'key1':0, 'key2':10, 'key3':110}
OUT : {'key1':0, 'key2':0, 'key3':0}
Run Code Online (Sandbox Code Playgroud)
是.用途dict.fromkeys:
>>> dict1 = {'key1':0, 'key2':10, 'key3':110}
>>> dict.fromkeys(dict1, 0)
{'key1': 0, 'key2': 0, 'key3': 0}
Run Code Online (Sandbox Code Playgroud)
但是要小心,如果你的fill-value是一个可变对象,这意味着每个值都将是该可变对象的同一个实例,例如:
>>> new_dict = dict.fromkeys(dict1, [])
>>> new_dict
{'key1': [], 'key2': [], 'key3': []}
>>> new_dict['key1'].append('foo')
>>> new_dict
{'key1': ['foo'], 'key2': ['foo'], 'key3': ['foo']}
Run Code Online (Sandbox Code Playgroud)