더북(TheBook)

이 코드는 연습문제 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

이 해법은 필요한가에 관계없이 언제나 새로운 리스트를 만든다는 단점이 있다. 리스트에서는 그리 큰 문제는 아니지만, 팩토리 함수가 복잡하다면 문제가 될 수도 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.