반응형
sort와 sorted는 정렬 시 비교 기준이 되는 key parameter를 가질 수 있다.
sorted("This is a test string from Andrew".split(), key=str.lower)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
위의 코드는 공백을 기준으로 문자열을 나누어서 정렬하고 리스트로 변환을 한다.
key에 str.lower가 되어있어 대소문 구분없이 정렬이 된다.
sorted("This is a test string from Andrew".split())
['Andrew', 'This', 'a', 'from', 'is', 'string', 'test']
만약 key = str.lower가 없다면 대문자 먼저 정렬을 한 뒤 소문자로 정렬을 하게 된다.
또한 이 key를 사용하는 기술은 정확히 한번만 호출되기 때문에 빠르다는 장점이 있다.
This technique is fast because the key function is called exactly once for each input record
일반적인 패턴은 객체의 인덱스 중 일부를 키로 사용하여 복잡한 객체를 정렬할 수 있다.
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2])
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
위와 같이 코드를 사용하면 student[2]를 기준으로 정렬을 하므로 숫자에 관련되어 정렬이 진행된다.
반응형
'Language_ > python' 카테고리의 다른 글
[Python] 변수명 Naming Convention (2) | 2020.08.07 |
---|---|
[python] 증감연사자가 있다? 없다?? (3) | 2020.07.04 |
[python] sort sorted 총 정리 (0) | 2020.07.03 |
[python] sum max min 총 정리 (0) | 2020.07.03 |
[Python] Visual Studio Code 개발 환경 구축하기 (0) | 2020.07.03 |
댓글