문제
튜플이 들어있는 다음 튜플이 있습니다.
MY_TUPLE = (
('A','Apple'),
('C','Carrot'),
('B','Banana'),
)
이 튜플을 기준으로 정렬하고 싶습니다 초 내부 튜플에 포함 된 값 (즉, A, B, C가 아닌 사과, 당근, 바나나 정렬).
이견있는 사람?
해결책
from operator import itemgetter
MY_SORTED_TUPLE = tuple(sorted(MY_TUPLE, key=itemgetter(1)))
또는없이 itemgetter
:
MY_SORTED_TUPLE = tuple(sorted(MY_TUPLE, key=lambda item: item[1]))
다른 팁
에서 미니 호우를 정렬합니다
종종 str.lower ()와 같은 요구에 맞는 내장이 있습니다. 연산자 모듈에는이 목적에 유용한 여러 기능이 포함되어 있습니다. 예를 들어, OPERATOR.ITEMGETTER ()를 사용하여 두 번째 요소를 기반으로 튜플을 정렬 할 수 있습니다.
>>> import operator
>>> L = [('c', 2), ('d', 1), ('a', 4), ('b', 3)]
>>> map(operator.itemgetter(0), L)
['c', 'd', 'a', 'b']
>>> map(operator.itemgetter(1), L)
[2, 1, 4, 3]
>>> sorted(L, key=operator.itemgetter(1))
[('d', 1), ('c', 2), ('b', 3), ('a', 4)]
도움이 되었기를 바랍니다.
sorted(my_tuple, key=lambda tup: tup[1])
다시 말해, 튜플의 두 가지 요소를 비교할 때 정렬하는 경우 전달 된 함수의 리턴 값을 기준으로 핵심 매개 변수로 정렬하십시오.
나는이 코드를 사용하여 같은 것을 달성했지만 당신의 제안은 훌륭합니다. 감사!
templist = [ (line[1], line) for line in MY_TUPLE ]
templist.sort()
SORTED_MY_TUPLE = [ line[1] for line in templist ]
제휴하지 않습니다 StackOverflow