더북(TheBook)

13.6 사전 빼기

words.txt의 단어 목록에는 없지만 책에는 있는 단어들을 찾는 문제는 집합 빼기로 인식할 수 있다. 즉, 다른 집합에는 없고, (책에 있는 단어로 된) 한쪽 집합에만 있는 모든 단어를 찾는 것이다.

subtract는 사전 d1d2를 받아서 d2에는 없지만 d1에는 있는 모든 키를 담은 새로운 사전을 반환한다. 값이 무엇인지는 고려하지 않으므로 값은 모두 None으로 설정해둔다.

def subtract(d1, d2):

res = dict()

for key in d1:

if key not in d2:

res[key] = None

return res

words.txt에는 없고 책의 단어에는 있는 것을 찾으려면 process_file를 사용해 words.txt에 대한 히스토그램을 만들고, 이를 빼야 한다.

words = process_file('words.txt')

diff = subtract(hist, words)

print("Words in the book that aren't in the word list:")

for word in diff:

print(word, end=' ')

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