SeouliteLab

[Python/파이썬] 리스트 정렬: sort()와 sorted()의 차이 본문

프로그래밍

[Python/파이썬] 리스트 정렬: sort()와 sorted()의 차이

Seoulite Lab 2024. 3. 6. 09:46

파이썬에서 리스트를 정렬하는 데에는 두 가지 방법이 있습니다: 리스트의 메서드인 sort()와 내장 함수인 sorted()입니다. 이 둘은 비슷해 보이지만 동작 방식과 사용 방법에 차이가 있습니다. 이번 글에서는 두 함수의 차이를 알아보고, 각각의 예제를 살펴보겠습니다.

sort() 메서드를 사용하여 리스트 정렬하기

my_list = [3, 1, 4, 1, 5, 9]
my_list.sort()
print(my_list)  # 출력 결과: [1, 1, 3, 4, 5, 9]

sort() 메서드는 리스트 자체를 정렬하여 변경합니다. 따라서 원본 리스트가 정렬됩니다.

sorted() 함수를 사용하여 리스트 정렬하기

my_list = [3, 1, 4, 1, 5, 9]
sorted_list = sorted(my_list)
print(sorted_list)  # 출력 결과: [1, 1, 3, 4, 5, 9]

sorted() 함수는 정렬된 새로운 리스트를 반환합니다. 따라서 원본 리스트는 변경되지 않습니다.

리스트 내림차순으로 정렬하기

my_list = [3, 1, 4, 1, 5, 9]
my_list.sort(reverse=True)
print(my_list)  # 출력 결과: [9, 5, 4, 3, 1, 1]

sort() 메서드와 sorted() 함수는 reverse 인자를 통해 리스트를 내림차순으로 정렬할 수 있습니다.

sorted() 함수의 key 인자 활용하기

my_list = ['banana', 'apple', 'cherry']
sorted_list = sorted(my_list, key=len)
print(sorted_list)  # 출력 결과: ['apple', 'banana', 'cherry']

sorted() 함수의 key 인자를 사용하여 정렬 기준을 지정할 수 있습니다. 이 예제에서는 문자열의 길이를 기준으로 정렬합니다.

sort() 메서드와 sorted() 함수의 시간 복잡도

import timeit

my_list = [3, 1, 4, 1, 5, 9]

def using_sort():
    my_list.sort()

def using_sorted():
    sorted(my_list)

print("sort() 메서드 시간:", timeit.timeit(using_sort, number=1000000))
print("sorted() 함수 시간:", timeit.timeit(using_sorted, number=1000000))

sort() 메서드와 sorted() 함수의 시간 복잡도 차이를 측정하는 예제입니다. sort() 메서드가 sorted() 함수보다 더 효율적입니다.