728x90
반응형
출처: 파이썬 알고리즘 인터뷰
Python에서는 기본적으로 Timsort를 사용한다.
Timsort는'실제 데이터는 대부분 이미 정렬되어 있을 것이다'라는 가정하고 실제 데이터에서 고성능을 낼 수 있도록 설계된 알고리즘이다.
sorted() 사용
sorted() 함수는 입력받는 String or List를 List로 반환한다.
str01 = 'aieosdkdslerb'
print(sorted(str01))
print:
['a', 'b', 'd', 'd', 'e', 'e', 'i', 'k', 'l', 'o', 'r', 's', 's']
key 지정
sorted() 함수는 정렬을 위한 key 옵션이 있다.
ex1) len 지정
key로 len을 지정하면 길이가 짧은 순으로 정렬된다.
list01 = ['aaa', 'bb', 'c']
print(sorted(list01))
print(sorted(list01, key=len))
print:
['aaa', 'bb', 'c']
['c', 'bb', 'aaa']
ex2) 문자 순서 지정
key로 list의 몇 번째를 기준으로 지정할지 정할 수 있다.
case 1: 첫 번째 문자 기준
case 2: 마지막 문자 기준
case 3: 첫 번째 문자 기준으로 정렬 후 마지막 문자 기준으로 정렬
list01 = ['abc', 'cba', 'bcb', 'deg', 'aez']
print('case 1: ' , sorted( list01, key= lambda s:(s[0])) )
print('case 2: ' , sorted( list01, key= lambda s:(s[-1])) )
print('case 3: ' , sorted( list01, key= lambda s:(s[0], s[-1])) )
print:
case 1: ['abc', 'aez', 'bcb', 'cba', 'deg']
case 2: ['cba', 'bcb', 'abc', 'deg', 'aez']
case 3: ['abc', 'aez', 'bcb', 'cba', 'deg']
728x90
반응형
'Python > Algorithm' 카테고리의 다른 글
[Python, Algorithm] 두 수의 합 (0) | 2020.10.02 |
---|---|
가장 긴 팰린드롬 부분 문자열 찾기 (0) | 2020.10.02 |
[Python, algorithm] 애너그램(Anagram) (0) | 2020.09.30 |
[python, algorithm] 가장 흔한 단어 찾기 (0) | 2020.09.29 |
[python] 팰린드롬 풀기 (0) | 2020.09.21 |