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

Python – 딕셔너리 리스트에서 특정 키(K)에 해당하는 값이 존재하는지 확인하는 방법

파이썬에서 여러 개의 딕셔너리로 이루어진 리스트 안에, 특정 키 'K'에 해당하는 값이 존재하는지 확인해야 하는 경우가 있습니다. 이럴 때 가장 간결하고 파이썬다운 방법은 리스트 컴프리헨션(list comprehension)in 연산자를 함께 사용하는 것입니다.

아래에서 실제 예제를 통해 자세히 살펴보겠습니다.

예제 코드

my_list = [{"python" : "14", "is" : "great", "fun" : "1`"},{"python" : "cool", "is" : "fun", "best" : "81"},{"python" : "93", "is" : "CS", "amazing" : "16"}]

print("리스트 출력:")
print(my_list)

K = "python"
print("키 K의 값:")
print(K)

value = "cool"

my_result = value in [index[K] for index in my_list]

print("결과:")

if(my_result == True):
    print("해당 키에 대해 값이 존재합니다.")
else:
    print("해당 키에 대해 값이 존재하지 않습니다.")

실행 결과

리스트 출력:
[{'python': '14', 'is': 'great', 'fun': '1`'}, {'python': 'cool', 'is': 'fun', 'best': '81'}, {'python': '93', 'is': 'CS', 'amazing': '16'}]
키 K의 값:
python
결과:
해당 키에 대해 값이 존재합니다.

코드 설명

  • 먼저 여러 개의 딕셔너리 요소를 담고 있는 리스트를 정의하고, 콘솔에 출력합니다.

  • 확인할 키 K(여기서는 "python")를 정의한 뒤 화면에 표시합니다.

  • 찾고자 하는 값을 담은 문자열 변수 value를 정의합니다.

  • 리스트 컴프리헨션을 사용하여 리스트를 순회하면서, 각 딕셔너리에서 키 K에 해당하는 값들을 새로운 리스트로 추출합니다.

  • in 연산자를 통해 찾고자 하는 값이 추출된 리스트 안에 있는지 검사하고, 그 결과(불리언 값)를 변수 my_result에 할당합니다.

  • 마지막으로 if-else 조건문을 사용하여 결과가 True인지 False인지에 따라 적절한 메시지를 콘솔에 출력합니다.

추가 팁: 더 간결한 방법

any() 함수와 제너레이터 표현식을 활용하면 중간 리스트를 생성하지 않고도 동일한 결과를 얻을 수 있어 메모리 측면에서 더 효율적입니다.

my_result = any(index.get(K) == value for index in my_list)

이 방식은 키가 존재하지 않는 딕셔너리가 있더라도 .get() 메서드 덕분에 KeyError 없이 안전하게 처리할 수 있다는 장점도 있습니다.