簡體   English   中英

如何按特定索引對列表進行排序

[英]How to sort a list by a specific index

list1=[('Oliver', 75, 180), ('Jack', 90, 190), ('Harry', 75, 175), ('Jacob', 60, 175), ('Charlie', 80, 180), ('Thomas', 70, 180)]

sorted(list1 , key = itemgetter(2 , 1) , reverse=True)

我想如果人的身高與我的代碼 output 上方打印的體重較輕的人相同:

[('Jack', 90, 190), ('Charlie', 80, 180), ('Oliver', 75, 180), ('Thomas', 70, 180), ('Harry', 75, 175), ('Jacob', 60, 175)]

我的願望 output:

[('Jack', 90, 190), ('Thomas', 70, 180),('Oliver', 75, 180),('Charlie', 80, 180), ('Jacob', 60, 175), ('Harry', 75, 175)]

我用python3

你可以試試

sorted(list1 , key = lambda x: (x[2], -x[1]) , reverse=True)

Output

[('Jack', 90, 190),
 ('Thomas', 70, 180),
 ('Oliver', 75, 180),
 ('Charlie', 80, 180),
 ('Jacob', 60, 175),
 ('Harry', 75, 175)]

如果高度相同,這將按最高高度和最低重量對列表進行排序。

暫無
暫無

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

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