【问题标题】:How to sort a list by a specific index如何按特定索引对列表进行排序
【发布时间】:2020-06-13 15:56:05
【问题描述】:
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)

我希望人的身高与上面印的体重较轻的人相同 我的代码输出:

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

我的愿望输出:

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

我用python3

【问题讨论】:

  • 欢迎来到 Stackoverflow!请使用所需的行为、特定问题和重现问题的代码更新您的问题。见:How to create a Minimal, Complete, and Verifiable example
  • 你想要的输出是什么?
  • 你用的是什么版本的 Python?
  • @ScottHunter python3
  • 我看不出你得到什么和你想要什么之间的区别。这两个数字中的哪一个是“身高”和“体重”……?

标签: python python-3.x list


【解决方案1】:

你可以试试

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

输出

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

如果高度相同,这将按最高高度和最低重量对列表进行排序。

【讨论】:

    猜你喜欢
    • 2011-05-09
    • 2016-09-10
    • 2022-01-08
    • 2011-03-16
    • 2017-04-08
    • 2022-01-18
    • 2015-07-25
    • 2017-11-28
    相关资源
    最近更新 更多