簡體   English   中英

Python:使用兩個按不同方向排序的鍵對列表進行排序

[英]Python: sorting a list using two keys which sort in a different direction

>>> from operator import itemgetter
>>> ul = [(10,2),(9,4),(10,3),(10,4),(9,1),(9,3)]
>>> ol = sorted(ul, key=itemgetter(0,1), reverse=True)
>>> ol
[(10, 4), (10, 3), (10, 2), (9, 4), (9, 3), (9, 1)]

我想要的是在第二個鍵上對reverse = False進行排序。 換句話說,我希望結果是:

[(10, 2), (10, 3), (10, 4), (9, 1), (9, 3), (9, 4)]

我該怎么做呢?

要對數字進行排序,可以使用負排序鍵:

sorted(ul, key=lambda x: (-x[0], x[1]))

或者,如果您有非數字數據,則可以進行兩次遍歷排序(首先按最低有效鍵排序):

ol = sorted(ul, key=lambda x: x[1])
ol = sorted(ol, key=lambda x: x[0], reverse=True)

暫無
暫無

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

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