簡體   English   中英

如何對三個 Vals 的壓縮列表進行排序,其中我想要前兩個反轉(降序)而第三個不是(升序)?

[英]How do I Sort a Zipped List of Three Vals where I want first two Reversed (Descending) and Third is not (Ascending)?

我正在嘗試對三個已壓縮的列表進行排序。 我希望它對前兩列(從最高到最低)進行反向排序,然后按升序排列第三列(從最低到最高)。 所以在下面的例子中,首先是最高的世界排名,然后是最高分,然后是名字,按字典順序較短的名字在前。

我可以使用以下內容完成第一部分:

names = ["name1", "McNamealot", "Namey Name Name", "Namey", "afirst"]
scores = [1,3,42,42,5]
world_rankings = [850,750,650,550,450]

zipped = zip(world_rankings, scores, names)

def sorter(item):
    return item[0], item[1] 
            
zipperoni = sorted(zipped, key = sorter, reverse = True)

但是,我無法弄清楚如何在不覆蓋前兩列的正確排序的情況下獲得第三列。

我確定我缺少一些基本概念。 任何答案和ofc解釋,將不勝感激。

正確答案:

sorted(zipped, key=lambda item: (-item[0], -item[1], item[2]))

感謝機械豬的超快反應!

暫無
暫無

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

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