SW개발/python

[python] 딕셔너리 Dictionary 구조 활용

코대장 2021. 11. 17. 14:28
반응형

안녕하세요, 파이썬을 통해서 가계부를 만들고 있는데요. 가계부를 쓸 때, 기본적으로 수입/지출로 나뉘겠고, 지출에서는 고정지출, 변동지출 등 성격에 따라 세부적으로 분류될 수 있겠죠. 이런 트리구조(?)를 가지면서 빠르게 분석을 할 수 있게 파이썬 딕셔너리 Dictionary 자료구조를 통해서 해결해 보려고 합니다.

 

딕셔너리 "값"으로부터 "키" 값 찾기

두 가지 main_dict 와 sub_dict를 선언했어요. 예를 하나 들어보죠. 변동지출에 "생활"이라는 카테고리가 있고 그 안에 "마트", "편의점" 이렇게 두개가 있다고 해볼게요. 그리고 마트와 편의점 하위로 각각 카테고리들이 있다고 해볼게요.

 

<생활>

  • > 마트
    • >> 홈마트, 힐마트
  • > 편의점
    • >> 지에스편의점, 세븐일레븐

이런 구조에서 실제로 체크카드나 현금 등을 사용하는 사용처명은 가장 하위 단에 정보가 들어오겠죠. 예를 들어 "지에스편의점 5천원" 이런식으로요. 그럼 우리는 "지에스편의점"은 편의점으로 생활 카테고리로 분류되어 있는 것을 찾는 것입니다.

main_dict = {'생활': ['마트','편의점'],
             '식비': ['회사밥값','배달']}

sub_dict = {'마트': ['홈마트','힐마트'],
            '편의점': ['지에스편의점']}

find_text = '지에'

for sub_key, sub_values in sub_dict.items():
    for sub_value in sub_values:
        if find_text in sub_value:
            for main_key, main_values in main_dict.items():
                if sub_key in main_values:
                    print('find:{} | sub_key:{} | main_key:{}'.format(find_text, sub_key, main_key))

결과확인

find:지에 | sub_key:편의점 | main_key:생활