Надеемся, что это будет иметь смысл ...Сортировка списка кортежей с двумя входами кортежей в обратном порядке
У меня есть список кортежей следующего вида:
list_of_tuples = [('a', 1), ('b', 3), ('b', 2), ('a', 3)]
Нужный выход является
sorted_list_of_tuples = [('a', 1), ('b', 2), ('b', 3), ('a', 3)]
Проблема заключается в том, что я хочу, чтобы вторая запись увеличивалась, а первая запись уменьшалась.
import operator as op
sorted_list_of_tuples = sorted(list_of_tuples, key=op.itemgetter(2, 0))
Это, конечно же, сортирует оба поля для увеличения. Я не могу придумать милый (т. Е. Пару строк) способ сделать это. У кого-нибудь есть способ легко справиться с подобной сортировкой?
Я, кажется, помню, что вы можете ссылаться на элементы понимания списка внутри скобок, используя _
, так что, возможно, это место для начала?
Возможно, я не был ясен: целое в этом случае более важно. Его порядок должен увеличиваться по всему списку. Когда есть галстук (т. Е. Вторая позиция равна), я хочу, чтобы «b» произошло до «a».
* Кажется, я помню, что вы можете ссылаться на элементы понимания списка внутри скобок, используя _, поэтому возможно, это место для начала? * - Я не уверен, что вы имеете в виду, но '_' ничего особенного в Python, просто имя переменной. –
@ Lattyware: Я понимаю. То, что я вспомнил, было в этой теме: http://stackoverflow.com/questions/101268/hidden-features-of-python См. Запись под названием «Ссылка на понимание списка по мере его создания ...» – BenDundee
Как уже отмечалось, , это неясная деталь реализации, а не то, что нужно использовать в целом. Здесь также не очень важно. –