Как я могу отсортировать список кортежей одним из его значений, а затем другим?

Я догадаюсь, у меня есть это:

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 

Не знаю, даю ли я достаточно ясно, но я не владею английским языком, поэтому простите меня.

заранее спасибо

One Solution collect form web for “Как я могу отсортировать список кортежей одним из его значений, а затем другим?”

Используйте sorted с ключом, который делает обратную версию каждого кортежа, чтобы отсортировать второе значение в порядке убывания, вы можете добавить a-in перед отрицанием значения:

 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.

  • Как отличить метод экземпляра, метод класса, статический метод или функцию в Python 3?
  • строка проверки python содержит все символы
  • Синонимы арабского слова Net в Python?
  • Не следует ли __metaclass__ принудительно использовать метакласс в Python?
  • сделанные пули неправильны в url django
  • Самый быстрый способ генерации большой случайной строки с более низкими латинскими буквами
  • Как реализована функция super () в Python 3?
  • Назначение в буферы Python 3.x с параметрами> 1
  • Добавление более одного значения в словарь при циклическом перемещении по строке
  • Невозможно установить модули через pip на python 3.4
  • метод класса pass для fsolve
  • Python - лучший язык программирования в мире.