dmswl
[파이썬 문법] sort, sorted 등 본문
리스트.sort() : 리스트를 제자리 정렬. inplace = True 느낌.
None 값을 리턴하니
리스트2 = 리스트1.sort() (X)
sorted(리스트) : 정렬 결과를 별도로 리턴
⭐ key= 옵션을 지정해서 정렬을 위한 키 또는 함수를 별도로 지정할 수 있음.
ex) 정렬을 위한 함수로 길이를 구하는 len을 지정한 경우
=> 문자열 알파벳 순서가 아닌 길이 순서로 정렬됨.
>>> c = ['ccc', 'aaaa', 'd', 'bb']
>>> sorted(c, key = len)
['d', 'bb', 'ccc', 'aaaa']
ex) 첫 문자열과 마지막 문자열 순으로 정렬하기
a = ['cde', 'cfc', 'abc']
def fn(s):
return s[0], s[-1]
print(sorted(a, key = fn))
----------------------------
['abc', 'cfc', 'cde']
만약 그냥 sorted(a) 를 했다면 문자열의 문자 순서대로 비교해서
'abc', 'cde', 'cfc' 순서로 출력이 됐을 것이다.
하지만, key로 fn을 넣어줬고, s[0] (첫번째 문자) 다음 s[-1] (마지막 문자) 를 보고 정렬하도록 key를 줬기 때문에
'cfc'가 'cde' 보다 먼저 온 것을 확인할 수 있다.
이를 굳이 따로 함수로 정의하지 않고 lambda를 이용해서 한 줄로 정리할 수 있다.
a = ['cde', 'cfc', 'abc']
print(sorted(a, key = lambda s: (s[0], s[-1])))
----------------------------
['abc', 'cfc', 'cde']
+ 내림차순 정렬하고 싶으면
reverse = True
옵션 넣어주기!
'코테 공부 > 알고리즘' 카테고리의 다른 글
[프로그래머스 LV2] 최솟값 만들기 (0) | 2023.04.13 |
---|---|
[프로그래머스 LV2] JadenCase 문자열 만들기 (0) | 2023.04.12 |
[백준] 23971. ZOAC 4 (0) | 2023.04.12 |
[프로그래머스 LV1] 문자열 내 p와 y의 개수 (0) | 2023.04.12 |
[프로그래머스 LV1] x만큼 간격이 있는 n개의 숫자 (0) | 2023.04.12 |
Comments