➰ Library/Python

[Python] 특정기준으로 배열 정렬하기 (key=lambda)

 사과개발자 2021. 7. 8. 21:22

파이썬에서 배열을 정렬하기 위해서는 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]))

 

반응형