我目前有一个元组列表,表示形式(startVertex,endVertex,edgeWeight)的有向图中的边。我希望按边权重排序此列表,并在绑定的情况下,按顶点self.value字符串的字典顺序排序,然后在startVertex值字符串之间绑定的情况下最后由endVertex self.value排序。
我已经搜索了相当数量的解决方案,但我似乎无法找到一个。我可以通过排序(list,key = itemgetter(2))或仅使用lambda函数的顶点值进行排序,但我找不到同时执行这两种操作的方法。
答案 0 :(得分:2)
def __lt__(self, other): return self.value > other.value
并使用
进行排序sorted(edgeList, key = itemgetter(2, 0, 1), reverse = True)
提供了我想要的行为(元组由(起始顶点,结束顶点,边缘权重)定义)。