본문 바로가기
코딩테스트 tip

key=lambda를 이용한 2차원 정렬

by Mecodata 2022. 11. 1.

파이썬의 익명함수 lambda를 이용하면 [[0,1],[2,4]]와 같은 2차원의 리스트를 더욱 편리하게 정렬시킬 수 있음

sort()와 sorted()내림차순을 설정할 수 있는 reverse정렬의 기준을 설정하는 key 파라미터선택적으로 입력할 수 있음!

 

ex) li = [[0,4], [1, -4], [1,3], [2,3], [3,4]]인 경우

 

1. li.sort(key=lambda x:x[1]) = 2차원 리스트의 두번째 원소를 기준으로 오름차순(1순위), 두번째 원소가 같을 경우 첫번째 원소 기준으로 다시 오름차순(2순위) 정렬

=> [[1, -4], [1,3], [2,3], [0,4], [3,4]]

 

2. li.sort(key=lambda x:-x[1]) = 2차원 리스트의 두번째 원소를 기준으로 내림차순(1순위), 두번째 원소가 같을 경우 첫번째 원소 기준으로 다시 오름차순(2순위) 정렬

=> [[0, 4], [3, 4], [1, 3], [2, 3], [1, -4]]

 

3. li.sort(key=lambda x:(x[1],-x[0])) = 2차원 리스트의 두번째 원소를 기준으로 오름차순(1순위), 두번째 원소가 같을 경우 첫번째 원소 기준으로 다시 내림차순(2순위) 정렬

=> [[1, -4], [2, 3], [1, 3], [3, 4], [0, 4]] 

 

활용문제

https://github.com/anydevil0812/coding_test/tree/main/%EB%B0%B1%EC%A4%80/Silver/11651.%E2%80%85%EC%A2%8C%ED%91%9C%E2%80%85%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0%E2%80%852

 

GitHub - anydevil0812/coding_test: 코딩 테스트

코딩 테스트. Contribute to anydevil0812/coding_test development by creating an account on GitHub.

github.com

 

댓글