更新字典并在密钥存在的情况下追加

时间:2018-12-14 09:28:46

标签: python numpy dictionary

我有一个字典清单。

list_of_dicts = [{ a: 1, b:f, c:3}, {a: y, b:q, c:z, d: 1}, ... ] 

现在,我想创建一个新的字典,它看起来像:

newDict = { a: [1,y], b: [f,q], c: [3,z], d:[1]}

我知道我可以做一个double for循环,但这很慢,因为我正在处理字典中的大对象(主要是NumPy数组)。

newDict = {}
for l in list_of_dicts: 
    for k, v in l.items():
        if k in newDict: 
           newDict.append(v)
        else:
           newDict[k] = [v]

如何更快地做到这一点?

2 个答案:

答案 0 :(得分:5)

使用createAt将改善性能:

collections.defaultdict()

答案 1 :(得分:0)

这是最快的方法。您可以将if替换为newdict.setdefault(k, []).append(v)来简化它,但是您无能为力,它比两个循环要快。