Skip to content

Conversation

@Mingguriguri
Copy link
Collaborator

백트래킹

  • N과 M 시리즈
  • N Queen

최솟값 만들기 TIL: 역순 정렬

  • 매번 자주 사용하는 sort
    • 정작 역순 정렬할 때는 자꾸 어떻게 써야 할 지 까먹는다.
    • sort(reverse=True), sorted(reverse=True
    • 파이썬의 역순 정렬 ( reverse() / reversed() )
      • list.reverse() : list 자체를 역순으로 정렬, 함수 반환값 None 값
      • reversed(list) : 역순 정렬된 list 새로운 변수에 할당 가능

귤 고르기 TIL: 딕셔너리 정렬

딕셔너리 정렬이 가물가물했다. 딕셔너리 정렬을 하면 좋을 것 같다고 생각이 들었는데, 딕셔너리는 key-value이니까 정렬을 못한다는 기억이 언저리 있었다.

하지만 딕셔너리도 key기준으로 또는 value를 기준으로 오름차순/내림차순 정렬을 할 수 있었다.

1. Key를 기준으로 정렬 (오름차순)

다음과 같이 sorted()를 이용하여 dict를 정렬할 수 있다.

sorted()에 인자로 my_dict.items()를 전달하면 오름차순으로 정렬됨

my_dict = {'c': 3, 'a': 1, 'b': 2, 'e': 1, 'd': 2}

sorted_dict = sorted(my_dict.items())
print(sorted_dict)

sorted()는 다음과 같이 Tuple pair로 이루어진 List를 리턴함

[('a', 1), ('b', 2), ('c', 3), ('d', 2), ('e', 1)]

참고로, my_dict.items()를 출력해보면 다음과 같이 Tuple pair로 이루어진 List가 리턴

print(my_dict.items())

Output:

dict_items([('c', 3), ('a', 1), ('b', 2), ('e', 1), ('d', 2)])

2. Key를 기준으로 정렬 (내림차순)

내림차순으로 정렬하려면

  • sorted()에 reverse = True를 인자로 전달해야 한다.
  • 두번째 인자로 lambda 함수가 전달되는데 item[0]는 dict의 key를 의미함
sorted_dict = sorted(my_dict.items(), key = lambda item: item[0], reverse = True)
print(sorted_dict)

Output:

[('e', 1), ('d', 2), ('c', 3), ('b', 2), ('a', 1)]

3. Value를 기준으로 정렬 (오름차순)

다음과 같이 sorted()를 사용하여 Value를 기준으로 정렬할 수 있다.

  • sorted() 함수의 인자로 lambda가 전달되는데 item[1]은 dict의 Value를 의미합니다.
`sorted_dict = sorted(my_dict.items(), key = lambda item: item[1])
print(sorted_dict)

Output:

[('a', 1), ('e', 1), ('b', 2), ('d', 2), ('c', 3)]

4. Value를 기준으로 정렬 (내림차순)

내림차순으로 정렬하려면 다음과 같이 sorted()에 인자로 reverse = True를 전달하면 된다.

sorted_dict = sorted(my_dict.items(), key = lambda item: item[1], reverse = True)
print(sorted_dict)

Output:

[('c', 3), ('b', 2), ('d', 2), ('a', 1), ('e', 1)]

@Mingguriguri Mingguriguri merged commit 7145934 into main Mar 11, 2024
learntosurf added a commit that referenced this pull request Apr 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants