이 글에서는 주로 Python 목록 정렬의 두 가지 방법과 예를 소개합니다. 아주 좋은 참고값이 있으니 함께 살펴볼까요
List를 정렬하기 위해 Python에서는 두 가지 방법을 제공합니다
방법 1. List의 내장 함수 list.sort를 사용하여 목록을 정렬
.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.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)]
위는 예제 3.4를 포함하여 목록을 정렬하는 6가지 방법을 제공합니다. 5.6 목록 항목의 특정 항목으로 정렬할 수 있습니다.
효율성 비교:
cmp < DSU < key 실험적으로 비교해보면 방법 3이 방법 6보다 느리고, 방법 6이 방법 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이 작동하는 이유는 무엇인가요? 그 이유는 튜플이 왼쪽에서 오른쪽으로 비교되기 때문입니다. 첫 번째 항목을 비교한 후 동일하면 두 번째 항목을 비교하세요
관련 권장사항:
정렬 메서드를 사용하여 Python 목록 개체에서 중첩된 튜플을 정렬하세요
파이썬 목록 요소가 튜플인 경우 정렬 방법
위 내용은 Python 목록 정렬의 두 가지 방법과 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!