pyl*_*ner 1 python dictionary list dataframe python-3.x
我正在尝试将字典和包含字典和空字典的列表结合起来
dict1 = {'a': 1, 'b': 2}
list1 = [{'c': 3}, {'d':4}]
emptydict = {}
emptylist = []
Run Code Online (Sandbox Code Playgroud)
尝试合并并使其成为最终的字典,如下所示。
final = {'a': 1, 'b': 2, 'c': 3, 'd':4}
Run Code Online (Sandbox Code Playgroud)
代码:
final = {**dict1, **list1[0], **list1[1], **emptydict, **emptylist}
Run Code Online (Sandbox Code Playgroud)
在这里,我不知道 list1 的长度,有人可以建议我比这更好的方法吗?
dict.update更新现有字典。不幸的是,它是一种不返回值的变异方法。因此,适应它functools.reduce需要一个包装器。
因此,我很想使用一个很好的旧循环:
final = dict(dict1)
for d in list1:
final.update(d)
Run Code Online (Sandbox Code Playgroud)
但为了完整起见,这里有一种使用方法functools.reduce:
import functools
def dict_update(d, v):
d.update(v)
return d
final = functools.reduce(dict_update, list1, dict1.copy())
Run Code Online (Sandbox Code Playgroud)