반응형
Dictionary 구조는 key 값으로 value 값을 찾는 데에 특화되어 있습니다. 국어사전에 비유하면 찾고자 하는 단어의 뜻은 쉽게 알 수 있으나, 해당 뜻을 가진 단어는 찾기가 매우 어렵습니다.
파이썬의 딕셔너리 구조도 마찬가지입니다. 원하는 value 값을 가진 key를 찾기 위해서는 일일이 조사해야 합니다.
[ Contents ]
1. for문을 활용한 전수조사
def find_value(dictionary, finding_value):
for key, value in dictionary.items():
if value == finding_value:
return key
일일이 for문으로 해당하는 value를 가진 key가 있는지 조사합니다. 발견하면 바로 key를 반환합니다.
def find_value(dictionary, finding_value):
res = []
for key, value in dictionary.items():
if value == finding_value:
res.append(key)
return res
만약 동일한 value를 가진 다수의 key를 반환받고 싶다면, 리스트로 저장한 뒤 반환하면 됩니다.
2. key-value를 맞바꾼 딕셔너리 생성
def reverse_dict(dictionary):
return dict(map(reversed, dictionary.items()))
value를 탐색할 일이 많다면, 아예 key와 value를 뒤바꾼 딕셔너리를 생성하는 것도 좋은 방법입니다.
key-value를 뒤바꾸면, key값으로 value를 쉽게 찾을 수 있습니다.
다만 동일한 value를 가진 딕셔너리를 reverse할 경우, 일부 데이터가 소실될 수 있습니다.
(딕셔너리는 중복된 key를 가질 수 없음)
반응형
'PL (Programming Language) > Python' 카테고리의 다른 글
[Python] 파이썬 for - else, while - else 구문 사용법과 예시 (0) | 2022.04.21 |
---|---|
[Python] 파이썬 for문의 iterable 속성을 통한 순회 (list, tuple, dictionary 등) (0) | 2022.04.18 |
[Python] 파이썬 딕셔너리(Dictionary) 연산 및 메서드 (0) | 2022.04.12 |
[Python] 파이썬 집합(set) 연산 및 메서드 (0) | 2022.04.12 |
[Python] 튜플(Tuple)이란? 튜플 연산과 메서드 (0) | 2022.04.12 |
댓글