파이썬 | product, defaultdict 사용법
Python :: product, defaultdict python :: product, defaultdict 파이썬을 사용해서 알고리즘을 풀다보면 2차 배열을 다룰 때 for 문을 두 번 쓰는 것이 매우 흔하다. for문이 중첩되면 인덴트가 중첩되서 발생하고 이는 코드 가독성과 내 생산성을 떨어뜨리는데, 이 때 itertools의 product 를 사용하면 더 간결하게 코딩할 수 있다. from itertools import product for i in range ( N ) : for j in range ( N ) : = > for i in product ( range ( N ) , range ( N ) ) : defaultdict 마찬가지로 딕셔너리를 사용할 때 해당 키의 값에 1씩 더해주는 연산도 자주 사용하는데, 이 때마다 키가 있는지 없는지 확인해주는것이 꽤나 귀찮다고 생각해왔다. 이 때 어떠한 키가 들어오든지 초기값이 0으로 시작되는 자료구조가 있는데 바로 defaultdict 이다. lambda : 0 을 사용해서 초기값을 0으로 지정해줄 수 있다. from collections import defaultdict counter_dict = defaultdict ( lambda : 0 ) 주의할 것 from collections import defaultdict counter_dict = defaultdict ( lambda : 0 ) counter_dict [ 1 ] = 10 counter_dict [ 0 ] counter_dict . items ( ) // dict_items ( [ ( 1 , 10 ) , ( 0 , 0 ) ] ) defaultdict에 할당하지 않더라도 새로운 키로 접근만 해도 해당 키에는 디폴트값이 생성된다는 걸 모른다면 나중에 버그를 잡는데 시간을 많이 허비할 수 있다는 것을 주의하자. ...