繁体   English   中英

Python:对元组列表进行排序,其中元组包含对象和整数

[英]Python: Sorting a list of tuples, where the tuples contain objects and ints

我目前有一个元组列表,表示有向图中的边,形式为(startVertex,endVertex,edgeWeight)。 我想按边缘权重对此列表进行排序,在平局的情况下,按顶点self.value字符串的字典顺序排序,然后在startVertex值字符串之间的关系中,最后按endVertex self.value排序。

我已经搜索了很多解决方案,但是似乎找不到。 我可以仅通过权重使用sorted(list,key = itemgetter(2))进行排序,也可以仅通过使用lambda函数的顶点值进行排序,但是我找不到同时实现两者的方法。

事实证明,这实际上是一个非常简单的解决方案。 我只是在顶点类中添加了一个方法:

def __lt__(self, other): return self.value > other.value

和排序

sorted(edgeList, key = itemgetter(2, 0, 1), reverse = True)

提供了我想要的行为(元组的定义是((起始顶点,终止顶点,边权重))。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM