IT TIP

파이썬은 튜플 목록을 어떻게 정렬합니까?

itqueen 2020. 12. 30. 19:56
반응형

파이썬은 튜플 목록을 어떻게 정렬합니까?


경험적으로, 파이썬의 기본 목록 분류 기가 튜플 목록을 전달하면 각 튜플의 첫 번째 요소를 기준으로 정렬하는 것 같습니다. 그 맞습니까? 그렇지 않다면 첫 번째 요소로 튜플 목록을 정렬하는 올바른 방법은 무엇입니까?


튜플의 첫 번째 요소를 기준으로 튜플 목록을 자동으로 정렬 한 다음 두 번째 요소를 기준으로 튜플 ([1,2,3])이 tuple ([1,2,4])보다 먼저 정렬됩니다. 이 동작을 재정의하려면 두 번째 인수로 callable을 sort 메서드에 전달하십시오. 이 콜 러블은 1, -1, 0을 반환해야합니다.


예, 이것이 기본값입니다. 사실 이것은 파이썬에서 고전적인 "DSU"(Decorate-Sort-Undecorate) 관용구의 기초입니다. Pythonista와 같은 코드를 참조하십시오 .


아니요, 튜플은 문자열과 같은 시퀀스 유형 입니다. 각 요소를 차례로 비교하여 동일하게 정렬됩니다.

>>> import random
>>> sorted([(0,0,0,int(random.getrandbits(4))) for x in xrange(10)])
[(0, 0, 0, 0), (0, 0, 0, 4), (0, 0, 0, 5), (0, 0, 0, 7), (0, 0, 0, 8),
(0, 0, 0, 9), (0, 0, 0, 12), (0, 0, 0, 12), (0, 0, 0, 12), (0, 0, 0, 14)]

세 개의 0은 첫 번째 요소가 아닌 다른 요소가 검사되어야 함을 표시하기 위해서만 있습니다.


내부 목록 정렬 방법을 사용하고 람다를 전달하십시오. 튜플의 첫 번째 요소가 정수이면 작동합니다.

# l is the list of tuples
l.sort(lambda x,y: x-y)

비교 함수에 대해 람다가 아닌 모든 호출 가능을 사용할 수 있습니다. 그러나 -1 (보다 작음), 0 (같음) 또는 1 (보다 큼)을 반환해야합니다.


이 질문에 "데빈 Jeanpierre"대답을 확인 정렬 A-사전 -에 - 파이썬 - 바이 - 더 - 값 그가 튜플와 쇼를 사용하여 말한다 방법 두 번째 값으로 정렬하기

참조 URL : https://stackoverflow.com/questions/644170/how-does-python-sort-a-list-of-tuples

반응형