본문 바로가기
기본적인프로그래밍/python

[python] 여러 변수에서 순서대로 sorted 적용해보기

by 인포메틱스 2021. 2. 9.
반응형

python을 하다보면 여러 변수들을 이용하여 내림차순 혹은 오름차순으로 정리해야 할 때가 있습니다.

 

예를 들어

시간 농도
1 0.3
3 0.6
2 0.4
3 0.7
2 0.3
1 0.4
3 0.7

 

위과 같은 자료가 있을때 농도에 따른 내림차순 먼저하고, 다른 시간에 따른 내림차순으로 변경하고 싶을때!

 

아래와 같이 진행하시면 됩니다.

 

# input
a=[(1,0.3),(3,0.6),(2,0.4),(3,0.7),(2,0.3),(1,0.4),(3,0.7)]

sorted(a)
# output : [(1, 0.3), (1, 0.4), (2, 0.3), (2, 0.4), (3, 0.6), (3, 0.7), (3, 0.7)]

sorted(a,key=lambda x:(x[1],x[0]))
# output : [(1, 0.3), (2, 0.3), (1, 0.4), (2, 0.4), (3, 0.6), (3, 0.7), (3, 0.7)]

sorted(a,key=lambda x:(x[0],x[1])) # sorted(a) 결과와 동일
# output : [(1, 0.3), (1, 0.4), (2, 0.3), (2, 0.4), (3, 0.6), (3, 0.7), (3, 0.7)]

sorted(a,key=lambda x:(x[0],-x[1]))
# output : [(1, 0.4), (1, 0.3), (2, 0.4), (2, 0.3), (3, 0.7), (3, 0.7), (3, 0.6)]

 

lambda를 사용하기에는 이번이 처음인데요. 생각보다 유용한것 같습니다.

 

 

728x90
반응형

댓글