Python Basic

List(리스트) 정렬 sorted(), sort() 차이 - Python(파이썬) 함수

cyberman 2020. 11. 5. 15:56

Python에서 List 원소를 오름차순 혹은 내림차순으로 정렬하기 위해서는 sorted() 또는 sort()가 쓰인다.

결론적으로 둘의 차이를 먼저 설명하면, sorted()는 List 원본을 변경하지 않고, sort()는 원본 자체를 바꾼다.

어떻게 쓰이는지 살펴보자.

 

우선 빈 리스트를 생성해 무작위 정수 3개를 추가한다.

import random as rd

# 빈 리스트 생성
numList = []

# 생성한 리스트에 random 함수로 1~99 사이의 무작위 정수 3개 추가
numList.append(rd.randint(1,99))
numList.append(rd.randint(1,99))
numList.append(rd.randint(1,99))
print('Random List:', numList)

 

sorted()로 위에서 만든 리스트를 정렬해 본다.

간단하게 sorted(List)로 오름차순 정렬이 된다.

역순으로, 즉 내림차순으로 정렬하려면 리스트 뒤에 reverse=True를 추가해주면 된다.

# sorted()로 리스트 원소 정렬
print(sorted(numList)) # 오름차순
print(sorted(numList, reverse=True)) # 내림차순
print(numList) # 리스트 원본 확인

 

이번에는 sort()로 리스트를 정렬해 본다.

List.sort() 명령으로 오름차순 정렬이 된다.

역순으로 정렬하기 위해서는 List.reverse()로 뒤집어주면 된다.

# sort()로 리스트 원소 정렬
numList.sort()
print(numList)
numList.reverse()
print(numList)

 

결과

Random List: [79, 48, 60] # 처음 생성한 리스트
[48, 60, 79] # sorted 오름차순
[79, 60, 48] # sorted 내림차순
[79, 48, 60] # 원본 확인
[48, 60, 79] # sort 오름차순
[79, 60, 48] # sort 내림차순

 

결과에서 볼 수 있듯이 sorted()는 원본을 바꾸지 않지만 sort()는 리스트 원본 자체를 변경해 버린다.