-
TIL 2023.05.05내일배움캠프 2023. 5. 5. 20:30
공휴일이지만 공부를 좀 했다.
자료구조, 알고리즘 숙제를 하는 도중 새롭게 알게된 것이다.
이차원 배열의 정렬!
arr = [[1, 1], [5, 4], [3, 3], [1, 3], [2, 6], [1, 2]] arr.sort() print(arr) >>>>> [[1, 1], [1, 2], [1, 3], [2, 6], [3, 3], [5, 4]]
파이썬 기본 정렬을 사용하면
다차원 배열의 경우
첫 번 째 값을 우선으로 정렬하되
첫 번 째 값이 같을 경우 두 번 째 값으로 다시 정렬한다.
다음 값이 있을 경우도 마찬가지
하지만 다른 기준으로 정렬하고 싶다면
key를 지정해주면 된다.
arr = [[1, 1], [5, 4], [3, 3], [1, 3], [2, 6], [1, 2]] arr.sort(key=lambda x: x[1]) print(arr) >>>>> [[1, 1], [1, 2], [3, 3], [1, 3], [5, 4], [2, 6]]
이렇게 키를 지정해주면 두 번 째 값을 기준으로 정렬된 것을 볼 수 있다.
나는 첫 번 째 값은 내림차순으로, 두 번 째 값은 오름차순으로 정렬하고 싶어! 한다면
arr = [[1, 1], [5, 4], [3, 3], [1, 3], [2, 6], [1, 2]] arr.sort(key=lambda x: (-x[0], x[1])) print(arr) >>>>> [[5, 4], [3, 3], [2, 6], [1, 1], [1, 2], [1, 3]]
x: ( ) 의 괄호안에 튜플 형식으로 집어넣는다. 괄호 안의 순서를 우선으로 정렬한다.
-를 붙여주면 내림차순으로 정렬된다.
딕셔너리도 같은 원리를 이용해 정렬해 줄 수 있다.
arr = sorted(dic.items(), key=lambda x: -x[1])
이렇게 한다면 딕셔너리의 value를 기준으로 내림차순으로 정렬할 수 있다.
'내일배움캠프' 카테고리의 다른 글
TIL 2023.05.08 (0) 2023.05.08 WIL 내일배움캠프 8주차 (0) 2023.05.05 TIL 2023.05.04 (0) 2023.05.04 TIL 2023.05.03 (0) 2023.05.03 TIL 2023.05.02 (2) 2023.05.02