我会明白这一点,我有这个:
ocurrencias = [('quiero', 1), ('aprender', 1), ('a', 1), ('programar', 1), ('en', 1), ('invierno', 2), ('hace', 1), ('frio', 1), ('este', 1)]
我想用元组的第二个值然后按字符串值对它进行排序,然后打印每个元素来得到它:
output:invierno 2
a 1
aprender 1
en 1
este 1
frio 1
hace 1
programar 1
quiero 1
不知道我是否说得足够清楚,但我并不十分精通英语,请原谅我。
提前致谢
答案 0 :(得分:7)
将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的信息。