파이썬에서 배열을 정렬하기 위해서는 sorted() / sort() 함수나 reverse 를 사용하여 내림차순, 오름차순정렬을 할 수 있습니다.
하지만 내가 원하는 특별한 기준으로 배열을 정렬하고 싶을 때는 어떻게 해야할까요?
이때는 key=lambda 식을 사용하면 됩니다!
1. key 가 하나일 때
ex1) x를 기준으로 정렬하기 (일반 오름차순)
arr = ['abc', 'bac', 'bca']
sorted(arr, key=lambda x : x)
ex2) arr 에 속하는 각 원소들을 x 라고 생각했을 때, x[0]를 기준으로 정렬하기
arr = ['abc', 'bac', 'bca']
sorted(arr, key=lambda x : x[0])
2. key 가 여러개 일 때
ex1) x[0]를 기준으로 정렬하고 같을 경우 x[1]를 기준으로 정렬하기
arr = ['abb', 'acc', 'bcd']
sorted(arr, key=lambda x : (x[0], x[1]))
3. 내림차순 정렬
ex1) x[0]는 내림차순, x[1]는 오름차순을 기준으로 정렬하기
arr = ['abb', 'acc', 'bcd']
sorted(arr, key=lambda x : (-x[0], x[1]))
반응형
'➰ Library > Python' 카테고리의 다른 글
[Python] 순열과 조합 직접 구현하기 / itertools 사용하기 (2) | 2021.06.24 |
---|---|
[Python] 시간 초과 날때 해결방법! (0) | 2021.04.26 |
[Python] 배열이 비어있는지 / 아닌지 확인하는 방법 (0) | 2021.04.01 |
[Python] 2차원 배열 입력받기 (0) | 2021.03.31 |
[Python] 배열 오름차순/내림차순 정렬하기 (0) | 2021.03.29 |