我如何按其中一个值然后另一个值对元组列表进行排序?

Fgb*_*una -1 python tuples list python-3.x

我会说到这一点,我有这个:

    ocurrencias = [('quiero', 1), ('aprender', 1), ('a', 1), ('programar', 1), ('en', 1), ('invierno', 2), ('hace', 1), ('frio', 1), ('este', 1)]
Run Code Online (Sandbox Code Playgroud)

我想通过元组的第二个值然后通过它们的字符串值对它进行排序,然后打印每个元素来获取:

    output:invierno 2
           a 1
           aprender 1
           en 1
           este 1
           frio 1
           hace 1
           programar 1
           quiero 1
Run Code Online (Sandbox Code Playgroud)

不知道我是否说得足够清楚,但我不是很精通英语,所以请原谅我.

提前致谢

Psi*_*dom 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)]
Run Code Online (Sandbox Code Playgroud)

正如@Jonathon评论的那样,其工作原因是由于列表和元组比较按顺序发生,即比较第一个元素; 如果不等于第二个元素,可以在python中查看有关对象比较的更多信息.