我需要很好地更改看起来像这样的元组
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查询的结果;元组根据每个元组的第一值排序;每个元组都是一对。
我无法以pythonic方式编码吗?有人可以帮忙吗?
答案 0 :(得分:2)
您可以在此处从集合模块中使用defaultdict
:
from collections import defaultdict
b = defaultdict(list)
for k, v in a:
b[k].append(v)
defaultdict(<class 'list'>, {10: [1, 2, 3], 20: [21], 30: [31, 32], 40: [41]})
答案 1 :(得分:1)
a = list(((10,1),(10,2),(10,3),(20,21),(30,31),(30,32),(40,41)) )
b = {}
for x, y in a:
if x in b:
b[x].append(y)
else:
b[x] = [y]
# Printing Output
print(b)