python - 如何将字典值填充为具有相同键的列表
问题描述
我有一个字典列表。我需要将每个键下的字典值作为循环列表(或任何其他方式)。
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]}
我需要一种不使用熊猫数据框的方法。非常感谢。
解决方案
使用字典,您可以使用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]})
推荐阅读
- c++ - 如何在 std::tuple 中合并 std::unordered_map?
- openedx - 如何使用 EDX API 从 XBlocks 访问考试?
- python - Python中的低效预处理
- javascript - 使用 Java 脚本打印 1 到 100 之间的所有质数
- java - 从计时器获取秒数到整数
- javascript - null 不是对象(评估“_RNGestureHandlerModule.default.Direction”)
- python - 如何合并分割在熊猫中多个记录的文本行
- ios - 将文件扩展名添加到 iOS 文档管理器
- excel - 使用python删除excel中的重复/重复出现
- html - Angular7 /显示按特定字段分组的数组中的字段集列表