>백엔드 개발 >파이썬 튜토리얼 >Python 목록 정렬 방법 역방향, 정렬, 정렬에 대한 자세한 설명

Python 목록 정렬 방법 역방향, 정렬, 정렬에 대한 자세한 설명

高洛峰
高洛峰원래의
2016-10-17 16:40:311568검색

Python 언어에는 역방향/역방향 정렬, 정방향 정렬, 정렬된 목록을 얻기 위한 정렬이라는 세 가지 목록 정렬 방법이 있습니다. 고급 목록 정렬에서는 후자의 두 가지 방법을 사용하여 정렬을 위한 조건부 매개변수를 추가할 수도 있습니다.

reverse() 메서드

는 다음과 같이 목록에 있는 요소의 순서를 바꿉니다.

>>> x = [1,5,2,3,4]
>>> x.reverse()
>>> x
[4, 3, 2, 5, 1]

역방향 목록 역정렬: 목록의 매개변수를 정렬하지 않고 원래 목록의 요소를 왼쪽에서 오른쪽으로 복원합니다. 목록의 매개변수를 정렬해야 하는 경우 목록의 또 다른 정렬 방법인 sort를 사용하여 양수 순서로 정렬해야 합니다.

sort() 정렬 방법

이 함수 방법은 목록 내용의 정방향 정렬을 수행합니다. 정렬된 새 목록은 원래 목록(ID는 변경되지 않음), 즉 정렬을 덮어씁니다. 정렬 방법은 원래 목록 정렬 방법을 직접 수정합니다.

>>> a = [5,7,6,3,4,1,2]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 6, 7]

많은 Python 초보자가 sort() 메서드에 대해 혼란스러워합니다. 때로는 정렬된 목록이 필요하지만 원래의 정렬되지 않은 목록을 저장하고 싶을 때도 있습니다.

>>> a = [5,7,6,3,4,1,2]
>>> b = a.sort()
>>> print b
None

이때 문제가 나타났습니다. 변수 b null 값을 얻었습니다. 그렇다면 정렬된 목록을 얻고 싶지만 원본 목록을 유지하고 싶다면 어떻게 해야 할까요? list sorted() 메소드는 이를 달성하는 데 도움이 될 수 있습니다.

sorted() 메서드

는 원래 목록을 유지하고 정렬된 목록을 가져올 수 있습니다. sorted() 작업 메서드는 다음과 같습니다.

>>> a = [5,7,6,3,4,1,2]
>>> b = sorted(a)
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]

sorted() 메서드는 모든 데이터 유형 시퀀스에서 사용할 수 있으며 항상 목록을 반환합니다.

>>> sorted('iplaypython.com')
['.', 'a', 'c', 'h', 'i', 'l', 'm', 'n', 'o', 'o', 'p', 'p', 't', 'y', 'y']

The 세 가지

sort()의 차이점은 매개 변수와 반환 값이 없는 변경 가능한 개체(사전, 목록)의 메서드입니다. sort()는 변경 가능한 개체를 변경하므로 반환할 필요가 없습니다. 값. sort() 메소드는 변경 가능한 객체에 고유한 메소드 또는 속성입니다. 튜플 및 문자열과 같은 불변 객체에는 이러한 메소드가 없습니다. 호출되면 예외가 반환됩니다.

>>> a=[5,4,3,2,1]
>>> a.sort()
>>> 
>>> a
[1, 2, 3, 4, 5]


sorted()는 Python의 내장 함수로, 가변 객체(목록, 사전)의 고유한 메서드가 아니라 sorted () 함수에는 매개변수가 필요합니다(매개변수는 목록, 사전, 튜플 또는 문자열일 수 있음). 어떤 매개변수가 전달되든 목록이 컨테이너인 반환 값이 반환됩니다. 키 목록이 반환됩니다.

>>> mystring="54321"
>>> mytuple=(5,4,3,2,1)
>>> mylist=[5,4,3,2,1]
>>> sorted(mystring)
['1', '2', '3', '4', '5']
>>> sorted(mytuple)
[1, 2, 3, 4, 5]
>>> sorted(mylist)
[1, 2, 3, 4, 5]


reverse()는 sort와 동일하게 사용되고 reversed()는 sorted와 동일하게 사용됩니다. () 같은 방법으로

>>> mylist=[5,4,3,2,1]
>>> mylist.reverse()
>>> mylist
[1, 2, 3, 4, 5]
>>> mylist=[5,4,3,2,1]
>>> for i in reversed(mylist):
...   print i,
... 
1 2 3 4 5


"역전" 효과는 시퀀스를 슬라이싱하여 얻을 수도 있습니다

>>> mystring="54321"
>>> mytuple=(5,4,3,2,1)
>>> mylist=[5,4,3,2,1]
>>> mystring[::-1]
'12345'
>>> mytuple[::-1]
(1, 2, 3, 4, 5)
>>> mylist[::-1]
[1, 2, 3, 4, 5]



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