首页 > 解决方案 > 如何将字典值填充为具有相同键的列表

问题描述

我有一个字典列表。我需要将每个键下的字典值作为循环列表(或任何其他方式)。

dl= [{'A':1, 'B':2}, {'A':3, 'B':4}, {'A':5, 'B':6}]
for d in dl:
    ?????

我需要的是这样的字典:

{'A':[1,3,5], 'B': [2,4,6]}

我需要一种不使用熊猫数据框的方法。非常感谢。

标签: python

解决方案


使用字典,您可以使用get()和默认值:

dgroups = {}
for d in dl:
    for k, v in d.items():
        dgroups[k] = dgroups.get(k, []) + [v]
print(dgroups)

输出:

{'A': [1, 3, 5], 'B': [2, 4, 6]}

或者,如果您不介意使用默认字典:

from collections import defaultdict

dl= [{'A':1, 'B':2}, {'A':3, 'B':4}, {'A':5, 'B':6}]
groups = defaultdict(list)
for d in dl:
    for k, v in d.items():
        groups[k].append(v)
print(groups)

输出:

defaultdict(<class 'list'>, {'A': [1, 3, 5], 'B': [2, 4, 6]})

推荐阅读