문제

튜플이 들어있는 다음 튜플이 있습니다.

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 ]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top