본문 바로가기
Python

Python 정렬

by Devwon99

● 리스트 정렬


파이썬에서 리스트를 정렬할 때는 sort(), sorted() 등 내장 함수를 이용한다.

 

● 숫자 리스트 정렬

● sort()


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

arr.sort()

print(arr)

출력 결과 : [1, 2, 3, 4, 5]

sort()의 default는 오름차순이다. 내림차순으로 정렬하고 싶다면 sort()내부에 reverse=True 코드를 추가하면 된다.

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

arr.sort(reverse=True)

print(arr)

출력 결과 : [5, 4, 3, 2, 1]

 

● sorted()


sorted 함수는 sort함수와 다르게 정렬된 리스트를 반환하는 함수이기 때문에 반환한 리스트를 변수에 할당해줘야 한다.

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

arr = sorted(arr)

print(arr)

출력 결과 : [1, 2, 3, 4, 5]

 

● 문자열 리스트 정렬

문자열들을 포함하고  있는 리스트를 사전순으로 정렬할 때는 아래의 sort()와 sorted()로 정렬할 수 있다.

● sort()


words = ["monkey", "cat", "elephant", "dog", "lion"]
words.sort()
print(words)

출력 결과 : ['cat', 'dog', 'elephant', 'lion', 'monkey']

오름차순으로 정렬된다. 내림차순으로 정렬을 윈할 시 마찬가지로 reverse=True 옵션을 붙여주면 된다.

words = ["monkey", "cat", "elephant", "dog", "lion"]
words.sort(reverse=True)
print(words)

출력 결과 : ['monkey', 'lion', 'elephant', 'dog', 'cat']

 

● sorted()


words = ["monkey", "cat", "elephant", "dog", "lion"]
sorted_words = sorted(words)
print(sorted_words)

 

출력 결과 : ['cat', 'dog', 'elephant', 'lion', 'monkey']

 

 

● 문자열 정렬


문자열을 알파벳 순으로 정렬할때는 위와 마찬가지로 sort()함수와 sorted() 함수를 이용하면된다.

 

● sort()


string = "Helloworld"
string.sort()

위와 같이 코드를 작성하면 AttributeError: 'str' object has no attribute 'sort' 오류가 발생한다.

에러 메시지를 해석하면 문자열은 sort함수를 사용할 수 없다는 뜻이다.

문자열에서 sort()함수를 사용하기 위해서는 문자열을 list로 변환하여 사용해야한다.

string = "Helloworld"
arr = list(string)
arr.sort()
print(arr)
sorted_str = ''.join(arr)
print(sorted_str)

출력 결과 : 

['H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
Hdellloorw

위의 코드와 같이 먼저 문자열을 list로 변환한 후 정렬하고 리스트를 join함수를 이용해 다시 문자열로 변환해줘야 한다.

출력결과로 볼 수 있듯이 문자열의 순서는 A ~ Z 이후 a ~ z 임을 알 수 있다.

 

● sorted()


string = "Helloworld"
sorted_arr = sorted(string)
print(sorted_arr)

출력 결과 : ['H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']

sorted() 함수는 sort()함수와는 다르게 문자열을 함수의 인자로 넣어 코드를 작성해도 정렬을 해준다.

다만 sorted() 함수는 결과물이 list로 반환된다.

string = "Helloworld"
sorted_arr = sorted(string)
print(sorted_arr)
sorted_str = ''.join(sorted_arr)
print(sorted_str)

출력 결과 : 

['H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
Hdellloorw

sorted() 함수를 사용한 후에 join함수를 이용해 문자열로 변환해주면 된다.

 

 

'Python' 카테고리의 다른 글

Python 클래스와 객체  (0) 2024.01.20
Python 튜플  (0) 2024.01.20
Python 재귀함수  (0) 2024.01.16
Python 전역변수  (0) 2024.01.16
Python Call by value, Call by reference  (0) 2024.01.14