>백엔드 개발 >파이썬 튜토리얼 >Python 사전에서 역방향 조회를 수행할 때 `KeyError`를 처리하는 방법은 무엇입니까?

Python 사전에서 역방향 조회를 수행할 때 `KeyError`를 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-14 01:27:111008검색

How to Handle `KeyError` When Performing Reverse Lookups in Python Dictionaries?

Python 사전의 역방향 조회: 값으로 키 검색

Python 사전은 키를 해당 값에 매핑하는 효율적인 방법을 제공하지만, 역방향 조회를 수행해야 하는 상황이 있을 수 있습니다. 이는 값이 있고 관련 키를 찾아야 하는 시나리오에 유용할 수 있습니다.

질문:

이름을 연령에 매핑하는 사전이 있다고 가정합니다. . 여러분의 임무는 나이를 입력으로 받아 해당 이름을 반환하는 함수를 만드는 것입니다. 그러나 스크립트에 KeyError 오류가 발생하여 이 경우를 처리하기 위해 코드를 수정하는 데 도움을 구하고 있습니다.

코드:

dictionary = {'george': 16, 'amber': 19}
search_age = raw_input("Provide age")
for age in dictionary.values():
    if age == search_age:
        name = dictionary[age]
        print name

해결책:

제공된 코드는 사전의 값을 반복하여 다음과 비교하려고 시도합니다. 입력 연령. 일치하는 항목이 발견되면 코드는 Dictionary[age]를 사용하여 사전에서 일치하는 키를 검색하려고 시도하는데, 여기서 KeyError가 발생합니다.

Python에서 역방향 조회를 수행하려면 다음 두 가지 방법을 활용할 수 있습니다.

방법 1:

mydict = {'george': 16, 'amber': 19}
print mydict.keys()[mydict.values().index(16)]  # Prints george

이 접근 방식에는 다음을 사용하여 모든 키와 값의 목록을 얻는 작업이 포함됩니다. 각각 mydict.keys() 및 mydict.values()입니다. 그런 다음 값 목록에서 index()를 사용하여 입력 연령의 위치를 ​​찾고 해당 위치에서 키를 검색합니다.

방법 2(Python 3.x):

mydict = {'george': 16, 'amber': 19}
print(list(mydict.keys())[list(mydict.values()).index(16)])  # Prints george

첫 번째 방법과 유사하게 이 접근 방식에는 키와 값을 목록으로 변환하는 작업이 포함됩니다. 그러나 Python 3.x 구문을 활용하여 색인 생성 프로세스를 단순화합니다.

위 내용은 Python 사전에서 역방향 조회를 수행할 때 `KeyError`를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.