我在 python 中有以下给定的图形边缘表示,其中顶点是键,边权重是值。
Edges = {(1,2):8.3 , (2,3): 4, (3,1):6}
我需要为一个应用程序(克鲁斯卡尔算法)按重量对边缘进行排序。因此,鉴于字典未排序,我想将字典转换为元组列表,如下所示。
Edges_List = [(1,2,8.3), (2,3,4), (3,1,6)]
这些可以按元组的第三个元素作为键进行排序。我用这个
Edges_list = [(k,v) for k,v in Edges.items()]
但我使用这个得到一个嵌套元组。
Edges_List = [((1,2),8.3), ((2,3),4), ((3,1),6)]
我有两个问题:
- 如何创建一个三元组而不是上面的嵌套元组?
- 有没有其他方法可以让我可以按权重对 Edges 字典进行排序,除了将其转换为元组列表之外,这是一个字典值?