从元组访问字典的值

accessing the value of a dictionary from a tuple

我正在使用 networkx,我需要根据权重值对边进行排序。 边以元组列表的形式出现,权重作为字典,元组的第三个元素:

G.edges = [(u, v, {'weight' = value})]  

我正在尝试使用

sorted(G.edges(data = True), key= lambda x: x[2].values())

但我收到错误消息:

TypeError: '<' not supported between instances of 'dict_values' and 'dict_values'.  

你能帮我解决这个问题吗?
谢谢

我认为您想要的不是所有 dict_values 的实际值。

sorted(G.edges(data = True), key=lambda x: x[2].get("weight", 0))

第二个参数与 get 的相关性是默认情况下 dict.get returns None 用于字典中不存在的键,所以你' d 风险(可能)引发使用 NoneType 进行索引的异常。在这些情况下,这只是将权重排序值设置为 0。