일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 아웃룩
- pandas
- Outlook
- 윈도우10
- Android
- 비주얼베이직
- 윈도우11
- matlab
- Windows11
- 파이썬
- office
- pyqt5
- 문자열
- pythongui
- 파이썬GUI
- 깃
- 파워포인트
- 엑셀
- python3
- windows
- html
- Windows10
- win32com
- 파이썬3
- 오피스
- Excel
- python
- VBA
- git
- 안드로이드
Appia의 IT세상
파이썬[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의 키값에 동일하게 존재하는지에 대해서 살펴보는 코드입니다. 이 코드를 바탕으로 검토해보면 다음과 같은 순서로 이루어집니다.
- allclass 키값들을 keys()메소드를 통해서 불러옵니다
- 1번에서 불러온 키값을 list로 변경하여 반복문을 통해 한 맴버씩 for loop를 돌게 합니다.
- 2번에서 나온 한 객체가 bclass에 key값이 존재하는지 확인하기 위해서 bclass키 값들을 keys()메소드를 통해서 불러오고 이를 list로 변경합니다.
- 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] Dictionary(딕셔너리) 데이터 출력하기
이번 포스팅에서는 파이썬[Python] 딕셔너리(Dictionary)의 키(Key)가 다른 딕셔너리에 존재여부 확인하기라는 주제로 간단히 포스팅을 해봤습니다. 잦은 사용은 아니지만, 이러한 부분들이 필요로 하는 순간들이 존재했던 것 같습니다. 그 때마다, 정리된 내용들에 대해서 찾아보곤 했는데, 저와 같이 갑자기 이런 부분들이 필요한 사람들에게 도움이 되셨으면 좋겠습니다. 감사합니다.
'Python > Python 응용' 카테고리의 다른 글
파이썬[Python] C 소스 코드 공백포함, 공백 미포함 코드라인 수 확인하기 (0) | 2021.07.23 |
---|---|
엑셀[Excel] Win32com을 입력받은 데이터 양(행,열)가 불규칙할 때 사용하기 좋은 팁 (0) | 2021.07.05 |
파이썬[Python] 파일의 생성 시간 및 수정 시간 확인하기 (5) | 2021.06.08 |
파이썬 [Python] win32com 이용하여, 엑셀(Excel) 셀 병합하기(Merge) (0) | 2021.05.06 |
파이썬 [Python] win32com 이용하여, 엑셀(Excel) 가로 세로 정렬하기 (0) | 2021.05.05 |