【发布时间】:2017-03-01 20:04:29
【问题描述】:
我不确定如何准确地表达我的问题,所以我将在这里更深入地介绍。
我正在尝试使用以下列表的输入在 Python 中执行图形着色问题:
[('A','B'),('A','C'),('A','D'),('B','C'),('C','D')]
这是为了表示图的每条边的“邻居”,使得A是B C&D的邻居,B是C的邻居,C是D的邻居
现在,我要做的是将这些分解成字典中的键,如下所示:
neighbors = {}
neighbors['A'] = ['B', 'C', 'D']
neighbors['B'] = ['A', 'C']
neighbors['C'] = ['A', 'B', 'D']
neighbors['D'] = ['A', 'C']
我遇到的问题是将初始输入分解为每个键字典的这个多值。到目前为止,我有这个:
neighbours = {}
myList = [('A','B'),('A','C'),('A','D'),('B','C'),('C','D')]
for i in myList:
neighbours[i[0]] = (i[1])
print(neighbours)
这提供了输出:
{'A': 'D', 'C': 'D', 'B': 'C'}
但我希望它看起来像这样:
{'A': ['B','C','D'], 'B': ['A','C'], 'C': ['A','B','D'], 'D': ['A','C']}
非常感谢任何帮助!谢谢:)
【问题讨论】:
-
元组是否有序?
-
不,他们不必如此。它们只是用来区分哪些边彼此相邻。
-
如果顺序无关紧要,在字典中使用
sets 而不是lists 是最简单的。
标签: python dictionary graph-coloring