gpt4 book ai didi

Python排序元组列表按值反转和按键不反转(两种不同的方式)

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:35 26 4
gpt4 key购买 nike

标题很困惑,但问题很简单。

假设我有一个这样的元组列表:

d = [('said', 12), ('that', 12), ('electricity', 11), ('was', 10), ('the', 51), ('zealand', 9), ('for', 13), ('new', 12), ('power', 14), ('transmission', 14), ('and', 9)]

我想对列表进行排序,使其按值降序排列。但是,我希望领带按字母顺序排序。

即对于上面的列表,'zealand' 和 'and' 都具有相同的值。但在排序列表输出中,我希望“and”出现在“zealand”之前。

我试过

d.sort(key=operator.itemgetter(1, 0), reverse=True)
print(d)

这给了我输出

[('the', 51), ('transmission', 14), ('power', 14), ('for', 13), ('that', 12), ('said', 12), ('new', 12), ('electricity', 11), ('was', 10), ('zealand', 9), ('and', 9)]

但是元组 ('zealand', 9) 出现在 ('and', 9) 之前,而实际上我想要 ('and', 9 ) 出现在 ('zealand', 9) 之前,因为 'and' 按字母顺序在 'zealand' 之前。

执行这种类型的排序的最佳方法是什么,它在一个方向上对值进行反向排序,而对键进行非反向排序。

如果您需要更多信息,请告诉我。

感谢您的宝贵时间。

最佳答案

在这种特定情况下,解决方案很简单......

L.sort(key = lambda x : (-x[1], x[0]))

我返回一个元组作为排序键,其中第一个元素与值相反,第二个元素是字符串。这样排序将按值降序,当值相同时按字母顺序升序。

关于Python排序元组列表按值反转和按键不反转(两种不同的方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57721461/

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