python中的排序加权无向图

wko9yo5t  于 4个月前  发布在  Python
关注(0)|答案(1)|浏览(65)

我需要根据权重对下面的图表进行排序。

graph_G = {'A': [('B', 7), ('E', 2)],
       'B': [('C', 6)],
       'C': [('A', 5), ('D', 3)],
       'D': [('E', 1)],
       'E': [('A', 7)],
      }

字符串
我试过print("Sort Dict %s" % (sorted(graph_G.items(), key=itemgetter(1))))
这是在元组的第一个字符上对字典进行排序。我想在元组的第二部分(权重)上对它进行排序。
所以我希望它像下面这样排序。

graph_G = {'A': [('E', 2), ('B', 7)],
       'B': [('C', 6)],
       'C': [('D', 3), ('A', 5)],
       'D': [('E', 1)],
       'E': [('A', 7)],
      }


有什么办法能把这事办了吗?

am46iovg

am46iovg1#

graph_G = {
'A': [('B', 7), ('E', 2)],
'B': [('C', 6)],
'C': [('A', 5), ('D', 3)],
'D': [('E', 1)],
'E': [('A', 7)]
}

sorted_graph_G = {node: sorted(neighbors, key=lambda x: x[1]) for node, neighbors in graph_G.items()}

print("Sorted graph based on weights:")
for node, neighbors in sorted_graph_G.items():
print(f"{node}: {neighbors}")

字符串
输出:

Sorted graph based on weights:
A: [('E', 2), ('B', 7)]
B: [('C', 6)]
C: [('D', 3), ('A', 5)]
D: [('E', 1)]
E: [('A', 7)]

相关问题