我怎样才能对一个元组列表进行排序呢?

2024-09-24 00:26:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我会说到点子上,我有这个:

    ocurrencias = [('quiero', 1), ('aprender', 1), ('a', 1), ('programar', 1), ('en', 1), ('invierno', 2), ('hace', 1), ('frio', 1), ('este', 1)]

我想先按元组的第二个值排序,然后再按字符串值排序,然后打印每个元素以得到:

^{pr2}$

不知道我说得够清楚,但我的英语不是很熟练,所以请原谅我。在

提前谢谢


Tags: 字符串元素排序eneste元组我会点子
1条回答
网友
1楼 · 发布于 2024-09-24 00:26:51

sorted与生成每个元组的反向版本的键一起使用,若要按降序对第二个值进行排序,可以在前面添加一个-来对该值求反:

sorted(ocurrencias, key = lambda x: (-x[1], x[0]))
# [('invierno', 2), ('a', 1), ('aprender', 1), ('en', 1), ('este', 1), ('frio', 1), ('hace', 1), ('programar', 1), ('quiero', 1)]

正如@Jonathon评论的那样,这种方法之所以起作用是因为列表和元组比较是按顺序进行的,即比较第一个元素;如果不等于第二个元素,请查看python中关于object comparison的更多信息。在

相关问题 更多 >