sorted()

sorted() 함수는 리스트, 튜플, 집합, 딕셔너리와 같은 반복 가능한 객체를 특정 순서로 정렬해서 새 리스트를 반환합니다.

sorted() 함수의 기본 구문은 아래와 같습니다.


Syntax

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


예제1 - 리스트와 튜플

a = [5, 1, 8, 2, 6, 3, 7, 4]
b = ('e', 'o', 'u', 'i', 'a')

print(sorted(a))
print(sorted(b))
[1, 2, 3, 4, 5, 6, 7, 8]
['a', 'e', 'i', 'o', 'u']

리스트 (list)와 튜플 (tuple)과 같은 시퀀스를 오름차순으로 정렬합니다.




예제2 - 집합과 딕셔너리

c = {'e', 'o', 'u', 'i', 'a'}
d = {'e': 3, 'o': 1, 'u': 2, 'i': 5, 'a': 4}

print(sorted(c))
print(sorted(d))
['a', 'e', 'i', 'o', 'u']
['a', 'e', 'i', 'o', 'u']

마찬가지로 집합 (set)과 딕셔너리 (dictionary)와 같은 컬렉션도 오름차순으로 정렬합니다.




예제3 - 내림차순 (reverse=True)

a = [5, 1, 8, 2, 6, 3, 7, 4]
b = ('e', 'o', 'u', 'i', 'a')

print(sorted(a, reverse=True))
print(sorted(b, reverse=True))
[8, 7, 6, 5, 4, 3, 2, 1]
['u', 'o', 'i', 'e', 'a']

reverse=True로 설정하면, 내림차순으로 정렬한 리스트를 반환합니다.




예제4 - key=len

e = ['abc', 'defg', 'hi', 'j']
f = [12, 345, 6789, 10]

print(sorted(e, key=len))
print(sorted(f, key=len))
['j', 'hi', 'abc', 'defg']
Traceback (most recent call last):
File "main.py", line 5, in <module>
  print(sorted(f, key=len))
TypeError: object of type 'int' has no len()

key는 하나의 인자를 받는 함수를 지정합니다.

key=len으로 지정하면 객체의 길이에 따라 정렬합니다. len()은 객체의 길이를 반환하는 파이썬 내장함수입니다.

만약 객체의 길이를 얻을 수 없다면 TypeError가 발생합니다.




예제5 - key=func (사용자 정의 함수)

def func(x):
  return x % 5

g = [12, 38, 5, 9, 23]

print(sorted(g))
print(sorted(g, key=func))
[5, 9, 12, 23, 38]
[5, 12, 38, 23, 9]

사용자 정의 함수를 만들 수 있습니다.

함수 func(x)는 x를 5로 나눈 나머지를 반환합니다.

key=func로 지정하면, 리스트의 값을 5로 나눈 나머지의 크기에 따라 리스트를 정렬합니다.



이전글/다음글

이전글 :
다음글 :