将dict列表转换为dict set list

时间:2016-02-15 18:50:04

标签: python dictionary

我有一本字典

graph = {'1': ['2', '21'],
         '2': ['3', '1'],
         '3': ['4', '2'],
         '4': ['5', '3'],
         '5': ['6', '4'],
         '6': ['12', '5'],
         '7': ['13', '8'],
         '8': ['7', '9'],
         '9': ['8', '10'],
         '10': ['9', '11']}

我希望输出为

graph = {'1': set(['2', '21']),
         '2': set(['3', '1']),
         '3': set(['4', '2']),
         '4': set(['5', '3']),
         '5': set(['6', '4']),
         '6': set(['12', '5']),
         '7': set(['13', '8']),
         '8': set(['7', '9']),
         '9': set(['8', '10']),
         '10': set(['9', '11'])}

我是python的新手,无法找到方法。我尝试过拉链但它会抛出不可用类型列表的错误。

2 个答案:

答案 0 :(得分:4)

for k,v in graph.items():
    graph[k] = set(v)

答案 1 :(得分:2)

您已经有了如何修改字典的答案。如果您需要新词典,可以使用理解。

{k:set(graph[k]) for k in graph}

或者

{k:set(v) for k,v in graph.iteritems()}

使用您认为更容易阅读的那个。如果您使用的是Python3,请使用items代替iteritems