-
[파이썬/Python] 파이썬의 정렬 방법들 (python sort)Python 2021. 6. 12. 12:43
기본으로 내장된 파이썬 정렬 함수들을 알아보자.
1. sorted()
l = [2, 5, 1, 7, 9] print(sorted(l)) #[1, 2, 5, 7, 9] print(l) #[2, 5, 1, 7, 9]
코드를 보다시피 정렬된 리스트를 리턴하는 것이지 리스트 자체가 정렬되는 것은 아니다.
2. sorted(), key
chars = ['aaa', 'bb', 'c'] print(sorted(chars, key=len)) #['c', 'bb', 'aaa']
위와 같이 sorted()함수에 두번째 파라미터로 함수를 줄 수 있고 그 함수 기준으로 정렬을 할 수 있다.
함수 len()에 의해서 리스트 각 요소에 길이가 구해질 것이고 길이 수에 맞게 오름차순으로 정렬됐다.
3. sorted(), function
def fn(s): return s[0], s[-1] chars2 = ['cde', 'cfc', 'abc'] print(sorted(chars2, key=fn)) #['abc', 'cfc', 'cde']
위와 같이 직접 정의한 함수를 파라미터로 줄 수 있고 정렬 기준을 한개 이상 주는 것도 가능하다.
함수 fn을 보면 각 문자의 첫번째 요소를 기준으로 정렬하고, 그 이후 중복 값이 있으면 각 문자의 마지막 요소를 기준으로 정렬한다.
4. sorted(), lambda
chars2 = ['cde', 'cfc', 'abc'] print(sorted(chars2, key=lambda s: (s[0], s[-1]))) #['abc', 'cfc', 'cde']
function을 정의해서 사용해도 되고 이와 같이 lambda로도 사용할 수 있다.
5. sort()
l = [2, 5, 1, 7, 9] print(l.sort()) #None print(l) #[1, 2, 5, 7, 9]
sort()는 sorted()와 반대로 리스트 자체를 제자리 정렬 (In-place Sort) 한다. 단 리턴 값은 없으니 주의하자.
'Python' 카테고리의 다른 글
[파이썬/Python] 파이썬 데크/덱 (deque) 자료구조 알아보기 (0) 2021.06.22 [파이썬/Python] 파이썬으로 크롤링하기 (0) 2021.06.11 [파이썬/Python] 파이썬 for문 index, value 동시에 접근 하기 (0) 2021.06.07 [파이썬/Python] 파이썬의 접근 제어자 (private) (0) 2021.06.03