sort()
- 리스트 자료형에서 제공하는 메소드다.
- 반환 값이 None이다. 원 리스트 자체를 제자리 정렬 In-place Sort 한다.
sorted()
- 정렬 결과를 반환한다.
b = 'zbdaf'
sorted(b)
---
['a', 'b', 'd', 'f', 'z']
- join()을 이용해 다시 문자열로 결합할 수 있다
b = 'zdbaf'
"".join(sorted(b))
---
'abdfz'
- key= 옵션을 지정해 정렬을 위한 키 또는 함수를 지정할 수 있다. (sort()도 가능)
# 길이를 구하는 len함수로 정렬
c = ['ccc', 'aaaa', 'd', 'bb']
sorted(c, key=len)
---
['d', 'bb', 'ccc', 'aaaa']
- 첫 문자열을 첫번째 기준으로, 마지막 문자열을 두번째 기준으로 두고 정렬할 수 있다.
a = ['cde', 'cfc', 'abc']
def fn(s):
return s[0], s[-1]
print(sorted(a, key=fn)
---
['abc', 'cfc', 'cde']
+ 람다 표현식을 이용하면 함수를 정의하지 않고 한 줄로 처리할 수 있다.
a = ['cde', 'cfc', 'abc']
sorted(a, key=lambda s: (s[0], s[-1]))
---
['abc','cfc', 'cde']
Reference : 책 <파이썬 알고리즘 인터뷰>