python의 딕셔너리는 다음 코드에서 Keyerror가 난다.
strs = ["eat","tea","tan","ate","nat","bat"]
ans = {}
for i in strs:
ans["".join(sorted(i))].append(i)
print(list(ans.values()))
ans에 key가 없을 때는 값을 추가할 수 없다는 에러가 난다.
그렇다고 몇의 공간이 필요한지, 어떤 키를 사용 해야 하는지 모르는 상황에서 key를 미리 할당할 수 도 없는 노릇이다.
그래서 사용해야 하는 것이 defaultdict 다.
기본 라이브러리인 from collections import defaultdict 로 사용할 수 있으며 다음과 같이 사용하면 된다.
strs = ["eat","tea","tan","ate","nat","bat"]
ans = defaultdict(list)
for i in strs:
ans["".join(sorted(i))].append(i)
print(list(ans.values()))
'Algorithm' 카테고리의 다른 글
LeetCode) Reverse Linked List II (0) | 2022.05.16 |
---|---|
백준) 괄호 (0) | 2022.05.15 |
LeetCode) 21. Merge Two Sorted Lists (0) | 2022.05.14 |
LeetCode) 배열 파티션 (0) | 2022.05.13 |
LeetCode) 가장 긴 팰린드롬 부분 문자열 (0) | 2022.05.13 |