man*_*iac 3 python dictionary numpy
我有一份dictionarys列表.
list_of_dicts = [{ a: 1, b:f, c:3}, {a: y, b:q, c:z, d: 1}, ... ]
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个新的字典,如下所示:
newDict = { a: [1,y], b: [f,q], c: [3,z], d:[1]}
Run Code Online (Sandbox Code Playgroud)
我知道我可以做一个双循环,但是这很慢,因为我在字典中处理大对象(主要是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]
Run Code Online (Sandbox Code Playgroud)
怎么做得更快?
使用a collections.defaultdict()将改善性能:
result = defaultdict(list)
for d in list_of_dicts:
for k, v in d.items():
result[k].append(v)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
297 次 |
| 最近记录: |