파이썬에서 리스트를 오름차순 또는 내림차순으로 정렬하기 위해서는 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()을 사용해 튜플로 다시 변환해 줍니다.
댓글