sorted()
오름차순으로 정렬된 새로운 리스트를 반환한다.
원래 목록은 영향 받지 않는다.
리스트뿐만 아니라 반복 가능한 모든 작업에 적용할 수 있다.
(ex. 문자열, 튜플, 딕셔너리, 제너레이터 등)
s = [3, 1, 5, 4, 2]
print(sorted(s)) # [1, 2, 3, 4, 5]
print(s) # [3, 1, 5, 4, 2]
list.sort()
해당 리스트를 오름차순으로 정렬한다.
리스트의 인덱스를 변경하고 None을 반환한다.
리스트에게만 정의되는 메소드이다.
리스트의 경우에는 list.sort()가 복사본을 만들 필요가 없으므로 sorted()보다 빠르다.
s = [3, 1, 5, 4, 2]
print(s.sort()) # None
print(s) # [1, 2, 3, 4, 5]
# 내림차순으로 정렬
s.sort(reverse=True)
print(s) # [5, 4, 3, 2, 1]
Key Functions
list.sort()와 sorted() 둘다 비교하기 전에 각 list 요소에 호출할 함수(또는 다른 호출 가능한 것)를 지정하는 key parameter를 갖고 있다.
ex) 대/소문자를 구분하지 않는 문자열 비교
sorted("This is a test string from Andrew".split(), key=str.lower)
# ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
키 매개 변수의 값은 단일 인자를 사용하고 정렬 목적으로 사용할 키를 반환하는 함수(또는 다른 호출 가능)여야 한다. 이 기법은 키 함수가 각 입력 레코드에 대해 정확히 한 번 호출되기 때문에 빠르다.
일반적인 패턴은 객체의 일부 인덱스를 키로 사용하여 복잡한 객체를 정렬하는 것이다.
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2]) # sort by age
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
참고: velog.io/@sparkbosing/Python-sort%EC%99%80-sorted-%EC%B0%A8%EC%9D%B4,
파이썬 공식 문서, https://docs.python.org/3/howto/sorting.html
'Python' 카테고리의 다른 글
[부스트코스] [모두를 위한 파이썬] 변수, 표현식, 문장 (0) | 2021.05.14 |
---|---|
[부스트코스] [모두를 위한 파이썬] 예약어, 순차문, 조건문 및 반복문 (0) | 2021.05.14 |
[Python] 문자 삭제 함수 strip (0) | 2021.04.11 |
[Python] 정규표현식 (0) | 2021.04.03 |
[Python] 문자열 변경 함수 replace, 문자 변경 함수 translate (0) | 2021.03.29 |