Всем привет, подскажите, как мне отсортировать такой список. [('=:', 'aa'), ('1:', 'sss'), ('1:', 'ccc'), ('1:', 'nnn'), ('=:', 'zz'), ('2:', 'yyyy'), ('2:', 'ddd')] . Сначала мне нужно отсортировать по длинне элемента в кортеже, потом по цифрам а потом уже одинаковые цифры отсортировать в алфавитном порядке. Должно выйти так [(2:, yyyy), (1:, ccc), (1:, nnn), (1:, sss), (2:, ddd), (=:, aa), (=:, zz)]
Всем привет, подскажите, как мне отсортировать такой список. [('=:', 'aa'), ('1:', 'sss'), ('1:', 'ccc'), ('1:', 'nnn'), ('=:', 'zz'), ('2:', 'yyyy'), ('2:', 'ddd')] . Сначала мне нужно отсортировать по длинне элемента в кортеже, потом по цифрам а потом уже одинаковые цифры отсортировать в алфавитном порядке. Должно выйти так [(2:, yyyy), (1:, ccc), (1:, nnn), (1:, sss), (2:, ddd), (=:, aa), (=:, zz)]
У функции sort и sorted есть параметр key. Это функция и она возвращает ключ для сортировки. На каждый элемент исходного списка. Например key=lambda x: len(x[1]) будет сортировать по возрастанию длины второго элемента кортежа.