簡體   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