簡體   English   中英

如何在Python 3中自定義我自己的比較函數

[英]How to customize my own compare function in Python 3

有沒有辦法在Python 3中自定義比較函數? 例如,有一個列表: [[1, a], [1, b], [2, b], [2, a], [3, a]] 首先,根據整數對其進行排序,從大到小,然后如果整數相同,則按字典順序對字母進行排序。 它完全是兩個不同的順序,第一個是相反的,第二個不是。 所以我不能只使用'reverse = True'來處理它。

我知道Python 2中的cmp可以幫助我定義自己的比較函數。 但是我怎么能在Python 3中做到這一點?

任何幫助將不勝感激。 謝謝

您可以使用鍵函數返回要排序的項目的元組。 否定反向訂單的數字項:

l = [[1, 'a'], [1, 'b'], [2, 'b'], [2, 'a'], [3, 'a']]
print(sorted(l, key=lambda t: (-t[0], t[1])))

這輸出:

[[3, 'a'], [2, 'a'], [2, 'b'], [1, 'a'], [1, 'b']]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM