파이썬/기본 문법
[Python] 이중 정렬하기
유자차H
2022. 5. 7. 16:27
반응형
이중 정렬이라고 표현을 했는데
2가지 항목으로 정렬을 하는 방법과 2가지 항목을 다른 정렬 방법으로 정렬하는 방법을 알려 드리겠습니다.
데이터 요소 기준으로 정렬
=> 요소1 기준으로 오름차순 후 동일한 것이 있다면 요소2 기준으로 오름차순
sorted(정렬할 리스트, key=lambda x : (정렬할 요소1, 정렬할 요소2))
data = [(1,"d"), (2,"c"), (3,"b"), (1,"a"), (3,"d"), (1,"f")]
res = sorted(data, key=lambda x : (data[0], data[1]))
# 출력결과 : [(1,"a"), (1,"d"), (1,"f"), (2,"c"), (3,"b"), (3,"d")]
정렬이 서로 다르게 정렬이 해야할 때
=> 요소 1 기준으로 오름차순, 요소 2 기준으로 내림차순
sorted(정렬할 리스트, key=lambda x : (정렬할 요소1, -정렬할 요소2))
정렬할 요소에 "-" 기호를 붙여주면 정렬이 반대로 됩니다.
data = [(1,"d"), (2,"c"), (3,"b"), (1,"a"), (3,"d"), (1,"f")]
res = sorted(data, key=lambda x : (data[0], -data[1]))
# 출력결과 : [(1,"f"), (1,"d"), (1,"a"), (2,"c"), (3,"d"), (3,"b")]
반응형