🏋️♂️
파이썬의 오름차순 정렬은 아주 쉽죠!
list.sort()
메서드 또는 sorted()
내장함수를 사용해주면 됩니다.
왜 같은 정렬 기능을 하는 게 두개나 있을까요? 메서드와 함수의 차이는 또 뭘까요?
이것을 이번 포스팅에서 알아보려고 합니다.
📌 메서드와 내장 함수
클래스
메서드에 대해 이해를 하려면 우선 클래스가 무엇인지를 알아야 하는데요.
파이썬은 객체 지향 프로그래밍(OOP, Object Oriented Programming)을 지원하는 언어입니다.
파이썬 OOP의 꽃이 바로 클래스인데요. 객체지향의 기본 단위가 된답니다.
흔히 비유하는 붕어빵 틀이 클래스가 되는 거죠!
클래스는 데이터를 표현하는 속성(attribute)과 행위를 표현하는 메서드(method)를 포함하는데요.
행위! 정말 쉽게 말하면 동작을 하는 어떤 것, 즉 클래스 내의 함수
가 메서드가 되겠지요?
list.sort()
파이썬은 list
라는 클래스를 기본적으로 지원해줍니다.
그 클래스 안에는 리스트의 다양한 기능을 하는 함수, 즉 메서드들이 있겠죠?
sort()
는 리스트라는 클래스 내의 메서드인데요.
이 친구는 리스트를 직접, 그자리에서 수정해버립니다. 그리고 None을 반환합니다.
>>> l = [6, 5, 4, 3, 2, 1]
>>> l.sort()
[1, 2, 3, 4, 5]
원래 목록을 알고있을 필요 없이 정렬된 리스트만 필요하다면 list.sort()
를 사용하는 게 편할 거예요.
또한 sort()
는 리스트의 메서드이므로 당연히 리스트에만 사용할 수 있습니다.
sorted()
내장함수는 파이썬 내에 내장되어 있는 함수로써, 모듈이나 패키지를 가져오지 않고 바로바로 사용할 수 있는 함수입니다.
파이썬에는 매우 다양한 내장함수가 있는데요, sorted()는 그 중 하나입니다.
보통의 함수는 무엇인가를 반환해주잖아요?
sorted()는 내장함수이므로 정렬을 하고 새로이 정렬된 리스트를 반환합니다.
따라서 sort()를 사용할 때처럼 허공에다 대고 하면 안 됩니다. 반드시 변수에 저장을 해줘야하죠.
>>> l = [6, 5, 4, 3, 2, 1]
>>> sorted(l)
[6, 5, 4, 3, 2, 1]
>>> l = [6, 5, 4, 3, 2, 1]
>>> l = sorted(l)
[1, 2, 3, 4, 5, 6]
하지만 sorted()는 리스트의 메서드가 아닌, 그냥 내장함수이므로 리스트가 아닌 모든 반복 가능한 객체에 사용이 가능합니다.