defaultdict이란?

jiwon·2022년 5월 1일
1

코테용 파이썬

목록 보기
9/11
post-thumbnail

오늘은 고수가 23줄만에 푼 문제를 1시간 반 넘게 붙잡고 뻘짓한 슬픈 날이다. 나는 dfs 문제에 좀 약한 것 같다.... 아무튼 고수들의 코드를 보니 하나같이 defaultdict를 쓴 것을 볼 수 있었다. 나는 그냥 dict을 썼다가 key error를 213539번 마주한 상태였다. dict이면 dict이지 defaultdict는 대체 무엇이란 말인가?

그래서 defaultdict이란?

객체의 기본값을 미리 지정해 놓을 수 있는 딕셔너리이다.
그러니까 이걸 쓰면 그런 키 값 없어! 하고 뱉는 keyerror로부터 자유로워질 수 있다는 말이다.

from collections import defaultdict
data = defaultdict(int)

예를 들어 이렇게 사용하면 값이 지정되지 않은 키의 값은 0으로 초기화된다.

from collections import defaultdict
data = defaultdict(list)

list를 줬다면 빈 리스트로 초기화된다.

참고

	r = defaultdict(list)
 	#프로그래머스 고득점 kit-여행경로
    #i 항공에서 갈 수 있는 애들을 r[i]에 저장
    for i,j in tickets:
        r[i].append(j)

딕셔너리 값으로 리스트를 넣어서 활용해본 적은 별로 없는 것 같은데, 오늘 다른사람들이 푼 걸 보니 이런 풀이도 코테에 꽤 유용한것 같다.

+22.06.45 추가
defaultdict은 혁명이다. 실전 코딩테스트에서 정말 여러번 써먹었다. 고수들의 풀이를 안봤다면 무슨 일이 일어났을지...풀었다고 휙 치워버리지말고 고수의 풀이를 보자.

profile
개발 공부합니다. 파이팅!

0개의 댓글