Appia의 IT세상

파이썬[Python] 딕셔너리(Dictionary)의 키(Key)가 다른 딕셔너리에 존재여부 확인하기 본문

Python/Python 응용

파이썬[Python] 딕셔너리(Dictionary)의 키(Key)가 다른 딕셔너리에 존재여부 확인하기

Appia 2021. 6. 30. 06:53
반응형

파이썬[Python] 딕셔너리(Dictionary)의 키(Key)가 다른 딕셔너리에 존재여부 확인하기

파이썬[Python] 딕셔너리(Dictionary)의 키(Key)가 다른 딕셔너리에 존재여부 확인하기

이번 포스팅은 파이썬[Python]의 대표적인 데이터 타입인 딕셔너리(Dictionary)의 키(Key)값을 가지고 두개의 딕셔너리(Dictionary)에서 한개의 딕셔너리(Dictionary)의 키(Key)값이 다른 딕셔너리에 존재하는지 확인하는 방법에 대해서 포스팅을 해보고자 합니다. 

 

먼저 다음과 같은 딕셔너리를 이용할 예정입니다. 

# 예시 데이터
allclass = {'Choi':18, 'Kim':17, 'Lee':19,'Baek':17}
aclass = {'Choi':18, 'Kim':17, 'Lee':19}
bclass = {'Baek':17, 'Joo':15}

 

먼저, 가장 쉽게 접근할 수 있는 방법은 바로, 반복문인 For loop 를 이용하는 것입니다. 그럼 다음코드를 보면서 이야기를 계속해 나가겠습니다. 

allclass = {'Choi':18, 'Kim':17, 'Lee':19,'Baek':17}
aclass = {'Choi':18, 'Kim':17, 'Lee':19}
bclass = {'Baek':17, 'Joo':15}


for key in list(allclass.keys()):
    if key in list(bclass.keys()):
        print(True)
    else :
        print(False)

위에서 보이는 바와 같이 allclass라는 딕셔너리에 키값이 bclass의 키값에 동일하게 존재하는지에 대해서 살펴보는 코드입니다. 이 코드를 바탕으로 검토해보면 다음과 같은 순서로 이루어집니다. 

  1. allclass 키값들을 keys()메소드를 통해서 불러옵니다
  2. 1번에서 불러온 키값을 list로 변경하여 반복문을 통해 한 맴버씩 for loop를 돌게 합니다. 
  3. 2번에서 나온 한 객체가 bclass에 key값이 존재하는지 확인하기 위해서 bclass키 값들을 keys()메소드를 통해서 불러오고 이를 list로 변경합니다. 
  4. 3번에 불러온 키 값들중에 2번에서 for loop를 돌게된 맴버가 존재하는지 if문을 이용해서 확인합니다. 

위와 같은 코드를 기반으로 확인을 할 수 있습니다. 위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

False
False
False
True

물론, 누락 누락된 맴버가 무엇인지 확인하고 싶다면, print문 인자로 key변수를 함꼐 이용하시면 됩니다. 

 

그럼 위의 방식을 약간 다르게 확인해보도록 하겠습니다. 위에서 보이는 부분에서 특징적인 부분은 바로 keys()메소드를 받은 값들을 리스트로 변환한다는 것입니다. 그럼 여기에서 리스트 비교를 이용하여 존재 여부를 확인할 수 있습니다. 그럼 코드를 한번 살펴보겠습니다. 

allclass = {'Choi':18, 'Kim':17, 'Lee':19,'Baek':17}
aclass = {'Choi':18, 'Kim':17, 'Lee':19}
bclass = {'Baek':17, 'Joo':15}


allclass_keys = list(allclass.keys())
bclass_keys = list(bclass.keys())

s_allclass_key = set(allclass_keys)
s_bclass_key = set(bclass_keys)

print(s_bclass_key -s_allclass_key)

 

위의 코드에서 보이는 바와 같이 key값들을 리스트로 변환한 후 이를 다시 set 으로 변경합니다. list는 순서 또한 중요한 요소이기 때문에 이와 무관한 set으로 변경을 합니다. 그런 후에 "-"연산을 통해서 각 누락된 항목들에 대해서 선별할 수 있습니다. 위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

{'Joo'}

실제 이 부분들은 다음 링크에 있는 두개의 리스트 비교하는 방법을 참고하시면 도움이 되실 것 같습니다. 

파이썬[Python] 020 두개의 리스트(List) 비교 방법

 

파이썬[Python] 020 두개의 리스트(List) 비교 방법

오늘은 파이썬에서 가장 많이 사용하는 리스트를 비교하는 방법에 대해서 살펴보고자 합니다. 다양한 방법중에 가장 접근하기 좋은 3가지 방법들로 관련해서 설명하고자 합니다.

appia.tistory.com

 

파이썬[Python] Dictionary(딕셔너리) 데이터 출력하기

 

파이썬[Python] Dictionary(딕셔너리) 데이터 출력하기

오늘 포스팅은 딕셔너리(Dictionary)에 저장된 데이터를 출력하는 방법에 대해서 살펴보고자 합니다. 예전에 딕셔너리(Dictionary)에 대해 간단하게 포스팅을 했던 적이 있습니다. (다음 링크참조) 링

appia.tistory.com

이번 포스팅에서는 파이썬[Python] 딕셔너리(Dictionary)의 키(Key)가 다른 딕셔너리에 존재여부 확인하기라는 주제로 간단히 포스팅을 해봤습니다. 잦은 사용은 아니지만, 이러한 부분들이 필요로 하는 순간들이 존재했던 것 같습니다. 그 때마다, 정리된 내용들에 대해서 찾아보곤 했는데, 저와 같이 갑자기 이런 부분들이 필요한 사람들에게 도움이 되셨으면 좋겠습니다. 감사합니다. 

반응형
Comments