이 코드는 연습문제 11-2에서 사용한 setdefault를 사용해 간단하게 작성할 수 있다.
def all_anagrams(filename):
d = {}
for line in open(filename):
word = line.strip().lower()
t = signature(word)
d.setdefault(t, []).append(word)
return d
이 해법은 필요한가에 관계없이 언제나 새로운 리스트를 만든다는 단점이 있다. 리스트에서는 그리 큰 문제는 아니지만, 팩토리 함수가 복잡하다면 문제가 될 수도 있다.