【发布时间】:2020-04-03 01:07:52
【问题描述】:
我需要很好地改变一个看起来像这样的元组的元组
a = ((10,1),(10,2),(10,3),(20,21),(30,31),(30,32),(40,41))
到一个字典
b = {10:[1,2,3], 20:[21], 30:[31,32], 40:[41]}
源元组是 SQL 查询的结果; tuple 根据每个 tuple 的第一个值排序;每个元组都是一对。
我没有成功地以 Python 方式对其进行编码?有人可以帮忙吗?
【问题讨论】:
-
一个 defaultdict(list) 听起来很适合这项工作。
-
为此使用
itertools.groupby:b = {k: [e[1] for e in g] for k, g in groupby(a, key=operator.itemgetter(0))}
标签: python loops dictionary tuples