python list 정렬 의 두 가지 방법 및 실례 설명
방법 1.List 의 내장 함수 list.sort 로 정렬
list.sort(func=None, key=None, reverse=False)
Python 인 스 턴 스:
>>> list = [2,5,8,9,3]
>>> list
[2,5,8,9,3]
>>> list.sort()
>>> list
[2, 3, 5, 8, 9]
방법 2.시퀀스 형식 함수 sorted(list)로 정렬(2.4 부터)Python 인 스 턴 스:
>>> list = [2,5,8,9,3]
>>> list
[2,5,8,9,3]
>>> sorted(list)
[2, 3, 5, 8, 9]
두 가지 방법의 차이:sorted(list)는 표현 식 으로 사용 할 수 있 는 대상 을 되 돌려 줍 니 다.원래 list 가 변 하지 않 고 새로운 정렬 된 list 대상 을 만 듭 니 다.
list.sort()는 대상 을 되 돌려 주지 않 고 원래 의 list 를 바 꿉 니 다.
다른 sort 의 인 스 턴 스:
인 스 턴 스 1:정방 향 정렬
>>>L = [2,3,1,4]
>>>L.sort()
>>>L
>>>[1,2,3,4]
인 스 턴 스 2:역방향 정렬
>>>L = [2,3,1,4]
>>>L.sort(reverse=True)
>>>L
>>>[4,3,2,1]
인 스 턴 스 3:두 번 째 키워드 정렬
>>>L = [('b',6),('a',1),('c',3),('d',4)]
>>>L.sort(lambda x,y:cmp(x[1],y[1]))
>>>L
>>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]
인 스 턴 스 4:두 번 째 키워드 정렬
>>>L = [('b',6),('a',1),('c',3),('d',4)]
>>>L.sort(key=lambda x:x[1])
>>>L
>>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]
인 스 턴 스 5:두 번 째 키워드 정렬
>>>L = [('b',2),('a',1),('c',3),('d',4)]
>>>import operator
>>>L.sort(key=operator.itemgetter(1))
>>>L
>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
인 스 턴 스 6:(DSU 방법:Decorate-Sort-Undercorate)
>>>L = [('b',2),('a',1),('c',3),('d',4)]
>>>A = [(x[1],i,x) for i,x in enumerate(L)] #i can confirm the stable sort
>>>A.sort()
>>>L = [s[2] for s in A]
>>>L
>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
이상 은 6 개의 List 정렬 방법 을 제 시 했 는데 그 중에서 인 스 턴 스 3.4.5.6 은 List item 중의 한 항목 을 만 들 수 있 습 니 다.키 워드 를 비교 하기 위해 정렬 합 니 다.
효율 비교:
cmp < DSU < key
실험 을 통 해 방법 3 은 방법 6 보다 느 리 고 방법 6 은 방법 4 보다 느 리 며 방법 4 와 방법 5 는 기본적으로 비슷 하 다.
다 중 키워드 비교 정렬:
실례 7:
>>>L = [('d',2),('a',4),('b',3),('c',2)]
>>> L.sort(key=lambda x:x[1])
>>> L
>>>[('d', 2), ('c', 2), ('b', 3), ('a', 4)]
우 리 는 이때 정렬 한 L 이 두 번 째 키워드 에 따라 만 배열 되 는 것 을 보 았 다.만약 에 저희 가 두 번 째 키워드 로 순 서 를 정 한 다음 에 첫 번 째 키워드 로 순 서 를 정 하고 싶다 면 요?두 가지 방법 이 있어 요.
실례 8:
>>> L = [('d',2),('a',4),('b',3),('c',2)]
>>> L.sort(key=lambda x:(x[1],x[0]))
>>> L
>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
실례 9:
>>> L = [('d',2),('a',4),('b',3),('c',2)]
>>> L.sort(key=operator.itemgetter(1,0))
>>> L
>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
왜 실례 8 은 일 을 할 수 있 습 니까?그 이 유 는 tuple 네,왼쪽 에서 오른쪽으로 비교 한 것 입 니 다.첫 번 째 를 비교 하고 똑 같 으 면 두 번 째 를 비교 합 니 다.이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.