[파이썬] ⭐defaultdict 서브 클래스

폼폼(YUNA AN)·2024년 9월 1일

사소한 발견

목록 보기
13/33
post-thumbnail

👩‍🏫 기본 문법

from collections import defaultdict
int_dict = defaultdict(int)

print(int_dict['key'])
>> 0

print(int_dict)
>> defaultdict(<class 'int'>, {'key': 0})
  • 명시적으로 value값을 정해주지 않아도, default로 value값을 가지고 있다!
  • value의 형태를 list, set, int 등으로 지정할 수 있다! 👀amazing..

👩‍🏫 default값을 list로 줬을 때

from collections import defaultdict
list_dict = defaultdict(list)

print(list_dict['key'])
>> []

print(list_dict)
>> {'key': []}
  • default value값빈 리스트다.

👩‍🏫 default값을 set로 줬을 때

from collections import defaultdict
set_dict = defaultdict(set)

print(set_dict['key'])
>> set()

print(set_dict)
>> {'key': set()}
  • default value값이 빈 set이다.

👩‍💻 (활용)default값을 list로 줬을 때

from collections import defaultdict
d = defaultdict(list)

d['element'].append('water')
d['element'].append('fire')
d['element'].append('air')

print(d)
>> {'element': ['water', 'fire', 'air']}

print(d['element'])
>> ['water', 'fire', 'air']
  • 결국 key 1개 - value 1개의 매칭이라는 점.
  • 그 value 1개의 형태를 지정할 수 있는거고
  • d['element'] 자체가 value이기 때문에 list에서 추가를 할 때 쓰는 append를 써야 함!

    만약 d = defaultdict(set)이었다면 add를 사용했을 것이다

    from collections import defaultdict
    d = defaultdict(set)
    
    d['element'].add('water')
    d['element'].add('fire')
    d['element'].add('air')
    
    print(d)
    >> {'element': {'air', 'water', 'fire'}} 
profile
광고 도메인과 콘텐츠 기획의 전문성을 갖춘 데이터 분석가입니다.

0개의 댓글