여기서 새로운 리스트 t도 사전에 추가되었다. 따라서 t를 수정하면 d에도 변경이 반영된다.
>>> t.append('new value')
>>> d
defaultdict(<class 'list'>, {'new key': ['new value']})
리스트의 사전을 만들어야 한다면 defaultdict를 사용해 코드를 더 간단하게 작성할 수 있다. 웹 사이트(http://thinkpython2.com/code/anagram_sets.py)에서 받을 수 있는 연습문제 12-2의 해법에서 문자들로 정렬된 문자열을 이들 문자로 만들 수 있는 단어 목록에 매핑한 사전을 만들었다. 예를 들어 'opst'는 리스트 ['opts', 'post', 'pots', 'spot', 'stop', 'tops']에 매핑된다.
다음은 원래 코드다.
def all_anagrams(filename):
d = {}
for line in open(filename):
word = line.strip().lower()
t = signature(word)
if t not in d:
d[t] = [word]
else:
d[t].append(word)
return d