正如标题所示,我正在尝试使用update()
方法更新字典,如下面的代码块
for key, val in my_dict.items():
new_dict.update(key=val)
如果my_dict = {'a': 1, 'b': 2}
我希望结果是new_dict = {'a': 1, 'b': 2}
(当然假设已经定义了new_dict)。但是,在执行时,我会获得new_dict = {'key': 2}
。
我做错了什么?
答案 0 :(得分:3)
关键字参数始终使用固定标识符作为键。请改用关键字扩展。
new_dict.update(**{key: val})
或者,如果new_dict
确实是一个字典,只需通过字典本身。
new_dict.update({key: val})
答案 1 :(得分:2)
update
使用关键字参数来更新字典,字典或可迭代对。您可以将字典作为第一个参数传递:
new_dict.update(my_dict)
update
旨在同时使用多个键。如果您只想设置单个值,则只需设置值:
new_dict[key] = value
答案 2 :(得分:2)
这是update
方法的代码,所以你可以看到它的行为方式(它不是真正的源代码,只是一个例子):
def update(self, other_dict={}, **kwargs):
for k, v in other_dict.items():
self[k] = v
for k, v in kwargs.items():
self[k] = v
因此,如果您致电new_dict.update(key=val)
,则kwargs
将等于{"key": value}
。
如果要以新的方式设置新密钥,则需要在字典中传递参数。