ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.