본문 바로가기
파이썬/파이썬기본문법

파이썬 리스트 정렬 - list sort

by flycoding 2023. 10. 11.
반응형

파이썬 리스트 정렬 - sort()

리스트 개체에는 기본적으로 리스트를 숫자, 오름차순으로 정렬하는 sort() 메서드가 있다:

a = ["orange", "mango", "kiwi", "pineapple", "banana"]
print(a)

a.sort()
print(a)

a.sort()를 실행하면 기본적으로 문자는 오름차순으로 정렬한다.

위의 코드를 실행하면 아래 그림과 같다.

파이썬 리스트 문자 정렬 활용 예제

 

리스트를 숫자로 정렬한다:

a = [100, 50, 65, 82, 23]
print(a)

a.sort()
print(a)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 리스트 정렬 숫자 활용 예제

 

파이썬 리스트 정렬 - 내림차순

내림차순 정렬하려면 키워드 인수 reverse = True:

a = ["orange", "mango", "kiwi", "pineapple", "banana"]
print(a)

a.sort(reverse = True)
print(a)

a.sort(reverse = True)는 내림차순으로 a리스트를 정렬하라는 메소드이다. 위의 코드를 실행하면 아래 그림과 같다.

파이썬 리스트 정렬 - 문자 내림차순 활용 예제

 

숫자 항목을 가진 리스트를 내림차순하면 아래 예제와 같다.

a = [100, 50, 65, 82, 23]
print(a)

a.sort(reverse = True)
print(a)

a.sort(reverse = True)는 내림차순으로 a리스트를 정렬하라는 메소드이다. 위의 코드를 실행하면 아래 그림과 같다.

파이썬 리스트 정렬 숫자 내림차순 활용예제

 

리스트 파이썬 정렬 함수 - sort()

키워드 인수 key = function을 사용하여 자신만의 기능을 사용자 정의할 수도 있다.

이 함수는 리스트 정렬에 사용될 숫자(가장 낮은 숫자 먼저)를 반환한다:

숫자가 50에 가까운 정도에 따라 리스트를 정렬한다:

def myfunc(n):
  return abs(n - 50)

a = [100, 50, 65, 82, 23]
print(a)

a.sort(key = myfunc)
print(a)

첫 번재 리스트 항목 abs(100-50) : 50

두 번재 리스트 항목 abs(50-50) : 0

세 번재 리스트 항목 abs(65-50) : 15

네 번재 리스트 항목 abs(82-50) : 32

다섯 번재 리스트 항목 abs(23-50) : 27

 

결과값이 0(50), 15(65), 27(23), 32(82), 50(100)순으로 정렬이 되므로 [50, 65, 23, 82, 100] 으로 정렬이 된다.

위의 코드를 실행하면 아래 그림과 같다.

파이썬 리스트 정렬 key=function 활용 예제

 

파이썬 리스트 정렬 - 대소문자 정렬

기본적으로 sort() 메서드는 대소문자를 구분하므로 모든 대문자가 소문자 앞에 정렬된다:

대소문자 구분 정렬은 예상치 못한 결과를 초래할 수 있다:

a = ["banana", "Orange", "Kiwi", "cherry"]
print(a)

a.sort()
print(a)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 리스트 정렬 - 대소문자 정렬

 

다행히 리스트를 정렬할 때 내장된 기능을 핵심 기능으로 사용할 수 있다.

따라서 대소문자를 구분하지 않는 정렬 기능을 사용하려면 str.lower를 키 함수로 사용한다:

a = ["banana", "Orange", "Kiwi", "cherry"]
print(a)

a.sort(key = str.lower)
print(a)

key = str.lower로 리스트 a 항목을 모두 소문자로 변형한 후에 정렬을 한다.

위의 코드를 실행하면 아래 그림과 같다.

파이썬 리스트 정렬 key=str.lower 활용 예제

 

파이썬 리스트 정렬 - 역순

알파벳에 상관없이 목록의 순서를 뒤집고 싶다면 어떻게 해야 할까?

reverse() 메서드는 요소의 현재 정렬 순서를 뒤집는다.

a = ["banana", "Orange", "Kiwi", "cherry"]
print(a)

a.reverse()
print(a) 

a.reverse()함수는 리스트 항목을 역순으로 배치한다.

위의 코드를 실행하면 아래 그림과 같다.

파이썬 리스트 정렬 reverse() 메소드 활용 예제

 

지금까지 다양한 파이썬 리스트 정렬 방법에 대해서 살펴보았다.

기본적으로 sort() 메소드를 사용하며 오름차순이이 기보이며 내림차순으로 정렬을 하려면 reverse=True를 활용한다.

또한 정렬을 나만의 정렬로 하기 원한다면 key=function을 정의하여 정렬을 할 수 있다. 역순으로 정렬을 하고자 한다면 reverse() 메소드를 사용하면 된다.

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

댓글