Python

(파이썬) 내장함수 sorted() 정렬

코딩ABC 2024. 1. 4. 13:58
반응형

파이썬 내장함수(Built-in Function)인 sorted() 함수에 대해 설명합니다.

 

sorted(iterable, /, *, key=None, reverse=False)

iterable(반복 가능한 데이터)의 항목을 정렬해서 리스트(list)로 반환합니다.

 

sorted() 함수는 정렬된 결과를 반환하지만 원본인 iterable은 변경되지 않습니다.

a=[3,4,5,2,1]
b = sorted(a)   #a는 변경되지 않고, 정렬된 결과가 b에 저장됩니다.
print(a)
print(b)

(Output)

[3, 4, 5, 2, 1]
[1, 2, 3, 4, 5]

 

인수 reverse=True로 지정하면 역순으로 정렬(descending sort)됩니다.

a=[3,4,5,2,1]
b = sorted(a, reverse=True)   # 역순으로 정렬됩니다.
print(b)

(Output)

[5, 4, 3, 2, 1]

 

리스트에도 sort() 메서드가 있지만, 이 메서드는 원본이 정렬됩니다.

a=[3,4,5,2,1]
a.sort()   # a가 정렬됩니다. 즉, 원본 데이터인 a가 변경됩니다.
print(a)

(Output)

[1, 2, 3, 4, 5]

 

인수 key는 iterable의 각 요소에서 비교 키를 추출하는데 사용되는 하나의 인수로 구성된 함수를 지정합니다(예: key=str.lower). key의 기본값은 None입니다.

a='Python'

# 소문자로 변경해서 정렬하기 때문에,
# 대소문자 구분없이 정렬하는 것과 동일합니다.
b = sorted(a, key=str.lower)
print(b)

(Output)

['h', 'n', 'o', 'P', 't', 'y']

 

위 예제에서 인수 key를 사용하지 않고 정렬하면 다음과 같은 결과가 나오는 것을 알 수 있습니다.

대문자를 소문자보다 먼저 출력되는 것을 볼 수 있습니다.

a='Python'
b = sorted(a)
print(b)

(Output)

['P', 'h', 'n', 'o', 't', 'y']

 

반응형