파이썬은 튜플 목록을 어떻게 정렬합니까?
경험적으로, 파이썬의 기본 목록 분류 기가 튜플 목록을 전달하면 각 튜플의 첫 번째 요소를 기준으로 정렬하는 것 같습니다. 그 맞습니까? 그렇지 않다면 첫 번째 요소로 튜플 목록을 정렬하는 올바른 방법은 무엇입니까?
튜플의 첫 번째 요소를 기준으로 튜플 목록을 자동으로 정렬 한 다음 두 번째 요소를 기준으로 튜플 ([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
'IT TIP' 카테고리의 다른 글
Makefile If-Then Else 및 루프 (0) | 2020.12.30 |
---|---|
두 번째 주마다 작업을 실행하도록 cron에 지시하는 방법은 무엇입니까? (0) | 2020.12.30 |
내 사용자 정의 속성이 적용된 멤버를 가져 오려면 어떻게합니까? (0) | 2020.12.30 |
컴퓨터가 절전 모드에서 다시 시작될 때 데스크톱 브라우저가 감지 할 수 있습니까? (0) | 2020.12.30 |
C # 4.0 app.config에서 섹션을 어떻게 사용합니까? (0) | 2020.12.30 |