簡體   English   中英

如何先按數字降序排序,然后按字母升序排序

[英]How to sort a list by number first in descending order and then by alphabet in ascending order

我有一個清單

ff = [('o', 2), ('l', 1), ('e', 1), ('g', 2)]

我想對它進行排序,使其按數字降序排序,如果任何元素具有相同的數字,則它按字母升序排序,就像這樣

ff = [('g', 2), ('o', 2), ('e', 1), ('l', 1)]

您可以使用帶參數keysorted

ff = [('o', 2), ('l', 1), ('e', 1), ('g', 2)]

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

print(output) # [('g', 2), ('o', 2), ('e', 1), ('l', 1)]

當一個元組作為key給出時, sorted字典順序對列表進行排序。 在這種情況下,它首先根據降序( -x[1] )的第二個元素排序,然后根據升序( x[0] )的第一個元素排序。

暫無
暫無

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

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