Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python – 리스트와 딕셔너리에 키가 모두 존재할 때 해당 키의 값 추출하기

파이썬에서 특정 키가 리스트(list)딕셔너리(dictionary) 양쪽에 모두 존재하는지 확인한 뒤, 그 키에 해당하는 값을 추출해야 하는 경우가 있습니다. 이럴 때는 간단한 반복문과 내장 함수인 all() 연산자를 활용하면 깔끔하게 처리할 수 있습니다.

예제 코드

아래는 실제 동작을 보여주는 예제입니다.

my_list = ["Python", "is", "fun", "to", "learn", "and", "teach", 'cool', 'object', 'oriented']

my_dictionary = {"Python" : 2, "fun" : 4, "learn" : 6}

K = "Python"
print("K의 값은 다음과 같습니다 : ")
print(K)

print("리스트의 내용은 다음과 같습니다 : ")
print(my_list)

print("딕셔너리의 내용은 다음과 같습니다 : ")
print(my_dictionary)

my_result = None
if all(K in sub for sub in [my_dictionary, my_list]):
   my_result = my_dictionary[K]

print("결과값은 다음과 같습니다 : ")
print(my_result)

실행 결과

K의 값은 다음과 같습니다 :
Python
리스트의 내용은 다음과 같습니다 :
['Python', 'is', 'fun', 'to', 'learn', 'and', 'teach']
딕셔너리의 내용은 다음과 같습니다 :
{'Python': 2, 'fun': 4, 'learn': 6}
결과값은 다음과 같습니다 :
2

코드 설명

  • 먼저 문자열로 구성된 리스트를 정의하고, 콘솔에 출력하여 확인합니다.

  • 다음으로 여러 키-값 쌍을 가진 딕셔너리를 정의하고 출력합니다.

  • 찾고자 하는 키 값 K를 정의한 후 화면에 표시합니다.

  • 결과를 저장할 변수를 None으로 초기화합니다. 조건이 만족되지 않으면 기본적으로 None이 유지됩니다.

  • all() 함수와 제너레이터 표현식을 사용하여, 키 K가 딕셔너리와 리스트 두 곳 모두에 존재하는지 한 번에 검사합니다.

  • 두 컨테이너 모두에 키가 존재한다면, 딕셔너리에서 해당 키에 매핑된 값을 결과 변수에 할당합니다.

  • 마지막으로 최종 결과값을 콘솔에 출력합니다.

핵심 포인트

all() 함수는 주어진 iterable의 모든 요소가 참일 때만 True를 반환합니다. 따라서 [my_dictionary, my_list] 각각에 대해 K in sub 조건을 검사함으로써, 두 자료구조에 키가 동시에 존재하는 경우에만 안전하게 값을 추출할 수 있습니다. 이 방식은 존재하지 않는 키에 접근할 때 발생할 수 있는 KeyError를 효과적으로 방지합니다.