首页 > 解决方案 > 元组到字典的Python元组

问题描述

我需要很好地改变一个看起来像这样的元组

 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 Query 的结果;tuple 根据每个 tuple 的第一个值排序;每个元组都是一对。

我没有成功地以 pythonic 方式对其进行编码?有人可以帮忙吗?

标签: pythonloopsdictionarytuples

解决方案


您可以使用defaultdict集合模块中的 a here:

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]})

推荐阅读