파이썬 Study/라이브러리
sort / sorted
코르시카
2021. 3. 14. 16:30
참고 :
[Python] list.sort()와 sorted(list) 차이
파이썬에서 .sort() 메서드와 built-in 함수 sorted( ) 의 차이를 알아봅니다. .sort() list.sort([reverse= ][, key= ]) - 원본 리스트를 정렬하되 반환 값은 None 입니다. - 원본 리스트의 순서를 변경합니다...
inma.tistory.com
■ list.sort( )
1) 정의 :
- 원본 리스트를 정렬하여 sorted 보다 빠름, 반환값 None (원본자체를 변경하므로)
- sort / sorted 자체는 key 없을 때 tuple의 경우 index 순으로 정렬이 진행된다
list.sort([reverse=<True|False>][, key=<function>])
# reverse : 내림차순 정리, 왼쪽이 더 크다, 기본 False
2) 예시 :
l1 = [1, 3, 2]
print(l1.sort())
>>> None
print(l1)
>>> [1, 2, 3]
# sorting using key index = 0
arr.sort(reverse=False,key = lambda x : x[0] )
print(arr)
>>> [[28, 'jy'], [35, 'kg'], [51, 'ak']]
# sorting using key index = 1
arr = [[28, "jy"] , [35 , "kg"] , [51 , "ak"]]
arr.sort(reverse=False,key = lambda x : x[1] ) # 사전형식 + length
print(arr)
>>> [[51, 'ak'], [28, 'jy'], [35, 'kg']]
■ sorted(<list>)
1) 정의 :
- 정렬된 새로운 리스트를 반환하여 원본에 영향을 미치지 않음, 대신 execution이 조금 더 걸린다
- 모든 iterable에 동작하는 함수 ( list, dictionary, set, tuple, string)...
sorted(iterable[, key=<function>][, reverse=<True|False>])
# reverse : 내림차순 정리, 왼쪽이 더 크다
2) 예시 :
sort의 예시 결과와 동일!
■ multiple attributes
1) 예시
# 1) 튜플
s = sorted(s, key = lambda x: (x[0], x[1]))
# 2) operator 라이브러리
import operator # faster / avoids python function call
s.sort(key = operator.itemgetter(1, 2))
■ string의 sorting
1) 정의 :
- 사전식, 길이 정렬 === [뒤에오는 alphabet, 길이가 긴 것] 이 더 "높음"
- 숫자가 더 "낮은" 순위, 길이보다 사전순이 선정렬 대상
2) 예시 :
> 같은 문자 포함중일 때
_list = [
'abcd',
'abcde',
'abcdd'
]
print(f'{sorted(_list)}')
>>> ['abcd', 'abcdd', 'abcde']
> 숫자, 'alphabet / 길이' 의 정렬 순위 예시
_list = [
'abcd',
'123',
'12222',
'1234'
]
print(f'{sorted(_list)}')
>>> ['12222', '123', '1234', 'abcd']
반응형