如何在Python中向现有字典中添加项?例如,给定:
default_data = {
'item1': 1,
'item2': 2,
}
我想增加一个新项目,这样:
default_data = default_data + {'item3': 3}
如何在Python中向现有字典中添加项?例如,给定:
default_data = {
'item1': 1,
'item2': 2,
}
我想增加一个新项目,这样:
default_data = default_data + {'item3': 3}
当前回答
我突然想到,你可能实际上是在问如何实现字典的+运算符,以下似乎是可行的:
>>> class Dict(dict):
... def __add__(self, other):
... copy = self.copy()
... copy.update(other)
... return copy
... def __radd__(self, other):
... copy = other.copy()
... copy.update(self)
... return copy
...
>>> default_data = Dict({'item1': 1, 'item2': 2})
>>> default_data + {'item3': 3}
{'item2': 2, 'item3': 3, 'item1': 1}
>>> {'test1': 1} + Dict(test2=2)
{'test1': 1, 'test2': 2}
注意,这比使用dict[key] = value或dict.update()的开销更大,所以我不建议使用这种解决方案,除非您打算创建一个新字典。
其他回答
default_data['item3'] = 3
很简单。
另一个可能的解决方案:
default_data.update({'item3': 3})
如果您想一次插入多个项,这很好。
它可以很简单:
default_data['item3'] = 3
正如Chris的回答所说,你可以使用update来添加多个项目。一个例子:
default_data.update({'item4': 4, 'item5': 5})
请参阅关于字典作为数据结构和字典作为内置类型的文档。
我突然想到,你可能实际上是在问如何实现字典的+运算符,以下似乎是可行的:
>>> class Dict(dict):
... def __add__(self, other):
... copy = self.copy()
... copy.update(other)
... return copy
... def __radd__(self, other):
... copy = other.copy()
... copy.update(self)
... return copy
...
>>> default_data = Dict({'item1': 1, 'item2': 2})
>>> default_data + {'item3': 3}
{'item2': 2, 'item3': 3, 'item1': 1}
>>> {'test1': 1} + Dict(test2=2)
{'test1': 1, 'test2': 2}
注意,这比使用dict[key] = value或dict.update()的开销更大,所以我不建议使用这种解决方案,除非您打算创建一个新字典。