首页 > 解决方案 > 为每个键构建一个字典,包含一组来自元组列表的关联值

问题描述

我有一个这样的元组列表:

list = [(1,2),(1,3),(1,5),(0,8),(0,9),(0,1),(3,6),(3,7)]

我想用这样的关联值集构建一个字典:

result = {1:{2,3,5},0:{8,9,1},3:{6,7}}

我有这个代码:

return {x:y for (x,y) in list}

result = {1: 5, 0: 1, 3: 7}

但是我只有最后一个值,我想要一个集合中的所有关联值。

提前致谢

标签: pythonlistdictionarysettuples

解决方案


defaultdict 可以在不检查存在的情况下为键添加值

from collections import defaultdict
mylist = [(1,2),(1,3),(1,5),(0,8),(0,9),(0,1),(3,6),(3,7)]
result = defaultdict(list)
for item in mylist:
    result[item[0]].append(item[1])

推荐阅读