>  기사  >  백엔드 개발  >  Python 목록 정렬의 두 가지 방법과 예

Python 목록 정렬의 두 가지 방법과 예

不言
不言원래의
2018-04-18 11:18:592145검색

이 글에서는 주로 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 = [(&#39;d&#39;,2),(&#39;a&#39;,4),(&#39;b&#39;,3),(&#39;c&#39;,2)]
>>> L.sort(key=lambda x:x[1])
>>> L
>>>[(&#39;d&#39;, 2), (&#39;c&#39;, 2), (&#39;b&#39;, 3), (&#39;a&#39;, 4)]


이때 정렬이 보입니다. 위의 L은 두 번째 키워드에 따라서만 정렬됩니다. 두 번째 키워드를 사용하여 정렬하고 첫 번째 키워드를 사용하여 정렬하려면 어떻게 해야 합니까?

예제 8이 작동하는 이유는 무엇인가요? 그 이유는 튜플이 왼쪽에서 오른쪽으로 비교되기 때문입니다. 첫 번째 항목을 비교한 후 동일하면 두 번째 항목을 비교하세요

관련 권장사항:

정렬 메서드를 사용하여 Python 목록 개체에서 중첩된 튜플을 정렬하세요

파이썬 목록 요소가 튜플인 경우 정렬 방법



위 내용은 Python 목록 정렬의 두 가지 방법과 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.