gpt4 book ai didi

python - 按列表 Python 中的不同元素按数字降序然后按字母升序组织

转载 作者:行者123 更新时间:2023-11-28 17:42:09 24 4
gpt4 key购买 nike

我有一个包含以下格式的三个元素的列表:

[('ABC', 'DEF', 2), ('GHI', 'JKL', 6), ('MNO', 'PQR', 22), ('ABC', 'STU', 2)...]

我想按数字对最后一个元素进行排序。然后按字母顺序排列第一个元素。如果有平局,最后是第二个元素。所以我的输出是:

[('MNO', 'PQR', 22), ('GHI', 'JKL', 6), ('ABC', 'DEF', 2), ('ABC', 'STU', 2)...]

我试过了

list_name.sort(reverse=True, key=lambda x: x[2])

这仅按降序排列最后的元素。如何添加按字母顺序对第一个和第二个元素进行排序的工具。

最佳答案

返回一个元组,并对数字取反而不是使用reverse:

list_name.sort(key=lambda x: (-x[2],) + x[:2])

这将返回 (-item3, item1, item2) 并且排序首先按 降序 的整数 item3 顺序进行,当绑定(bind)数字排序在 item1 上完成(按字母顺序,升序),然后在 item2 上完成。

实际上,元组是按字典顺序排序的。

演示:

>>> list_name = [('ABC', 'DEF', 2), ('GHI', 'JKL', 6), ('MNO', 'PQR', 22), ('ABC', 'STU', 2)]
>>> list_name.sort(key=lambda x: (-x[2],) + x[:2])
>>> list_name
[('MNO', 'PQR', 22), ('GHI', 'JKL', 6), ('ABC', 'DEF', 2), ('ABC', 'STU', 2)]

关于python - 按列表 Python 中的不同元素按数字降序然后按字母升序组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22739971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com