유자차의 재테크 공부방

[Python] 이중 정렬하기 본문

파이썬/기본 문법

[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")]
반응형

'파이썬 > 기본 문법' 카테고리의 다른 글

for문에서 2가지 변수 가져오기  (0) 2023.02.12
[Python] Garbage Collecting  (0) 2022.06.13
[Python] Pandas에 apply 진행률 보기  (0) 2022.05.12
math라이브러리 없이 올림하기  (0) 2022.04.25
이중 정렬  (0) 2022.03.25
Comments