본문 바로가기
PL (Programming Language)/Python

[Python] 파이썬 딕셔너리 value로 key 찾는 방법

by jangThang 2022. 4. 13.
반응형

 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를 반환받고 싶다면, 리스트로 저장한 뒤 반환하면 됩니다.

     

    다수의 key 반환

     

     

     

    2. key-value를 맞바꾼 딕셔너리 생성

    def reverse_dict(dictionary):
        return dict(map(reversed, dictionary.items()))

     value를 탐색할 일이 많다면, 아예 key와 value를 뒤바꾼 딕셔너리를 생성하는 것도 좋은 방법입니다.

     

     key-value를 뒤바꾸면, key값으로 value를 쉽게 찾을 수 있습니다.

     

     

     다만 동일한 value를 가진 딕셔너리를 reverse할 경우, 일부 데이터가 소실될 수 있습니다.

     (딕셔너리는 중복된 key를 가질 수 없음)

     

    star가 되고나서 Tistory

    반응형

    댓글