정렬(Sort)이란?
데이터값을 크기 순서로 배열하는 것을 정렬이라고 합니다.
고객 이름 | 구입액 |
---|---|
cat | 8000 |
rabbit | 12000 |
tiger | 1000 |
panda | 15000 |
lion | 4000 |
fox | 15000 |
다음과 같은 고객 명단이 있을 때 구입액이 큰 고객 순으로 정렬하는 코딩을 해보겠습니다.
ani = [["cat", 8000], ["rabbit", 12000], ["tiger", 1000], ["panda", 15000], ["lion", 4000], ["fox", 1000]]
다음과 같이 이중 구조 배열을 만들고 sorted 함수를 사용하면 쉽게 구현할 수 있습니다.
print(sorted(ani, key=lambda x: x[1])
결과를 확인해보면
다음과 같이 정렬되는것을 확인할 수 있습니다.
여기서 tiger와 fox처럼 같은 값을 가질 경우 alphabet 순으로 정렬되게 하려면
print(sorted(ani, key=lambda x: (x[1], x[0])))
다음과 같이 x[0]을 추가하면 해결 할 수 있습니다.
fox, tiger 순으로 변경됨을 확인할 수 있습니다.
마지막으로 숫자를 내림차순으로 변경하려면 sorted에서 reverse=True 옵션을 추가하면 됩니다.
print(sorted(ani, key=lambda x: (x[1], x[0]), reverse = True))
결과를 확인하면
숫자가 내림차순으로 정리되고 같은 값일 경우 알파벳도 순서대로 정렬됨을 확인할 수 있습니다.