我需要根据权重对下面的图表进行排序。
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)],
}
有什么办法可以做到这一点吗?
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)]