Python 리스트 정렬 sort와 sorted 사용 방법

파이썬에서 리스트를 오름차순 또는 내림차순으로 정렬하기 위해서는 sort와 sorted 함수를 사용합니다.

문자열이나 튜플을 정렬하고 싶은 경우에는 sorted()를 사용합니다.

  

리스트 정렬 sort

리스트를 정렬하는 경우에는 sort()를 사용합니다.

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

org_list.sort()
print(org_list)

 

결과

[1, 2, 3, 4, 5]

 

리스트를 sort()를 사용해 오름차순으로 정렬했습니다.

반대로 내림차순으로 정렬하기 위해서는 reverse=True를 설정합니다.

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

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

 

sort()는 반환값으로 None을 반환하니 주의해야 합니다. 

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

print(org_list.sort())

 

결과  

None

sorted()

sort()를 사용하면 반환값은 None이 반환되고 원본 리스트가 정렬이 됩니다.

원본 리스트는 변하지 않고 정렬한 리스트를 새로 만들고 싶은 경우에는 sorted()를 사용합니다.

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

new_list = sorted(org_list)
print(org_list)
print(new_list)

 

결과

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

 

사용 방법은 sort()와 같습니다.

sorted()를 사용해 내림차순으로 정렬하고 싶은 경우에는 reverse=True를 설정합니다.

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

new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)

 

결과

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

 

문자열 정렬

문자열을 정렬하기 위해서는 sorted()를 사용합니다.

문자열은 변경을 할 수 없는 이뮤터블형태이기 때문에 sort()를 사용할 수 없습니다.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

new_str = ''.join(new_str_list)
print(new_str)
# abcde

결과

cebad
['a', 'b', 'c', 'd', 'e']
abcde

 

정렬된 문자열은 리스트로 반환되기 때문에 join()을 사용해서 하나의 문자열로 연결해 줍니다.

 

튜플 정렬

튜플도 이뮤터블형태이기 때문에 sort()를 사용할 수 없습니다.

문자열처럼 sorted()를 사용해서 정렬을 합니다.

org_tuple = (3, 1, 4, 5, 2)

new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

 

결과

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

 

정렬 후 리스트 형태로 반환된 값을 tuple()을 사용해 튜플로 다시 변환해 줍니다.

댓글