繁体   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