더북(TheBook)

문법을 살펴보면 대괄호 기호 안에 선택 사항으로 추가할 수 있는 항목이 있다. 만약 딕셔너리 항목 중에 키가 존재하면 해당 값을 반환하지만, 키가 존재하지 않는다면 명시한 ‘기본값’을 반환하거나 명시하지 않은 경우 None을 반환한다. 단어 빈도수를 반환하는 다음 코드에서 알 수 있듯이, 이 두 번째 인수는 더 효율적인 코드를 작성하게 해 준다.

s = (input('문자열을 입력하라 : ')).split()
wrd_counter = {}
for wrd in s:
    wrd_counter[wrd] = wrd_counter.get(wrd, 0) + 1

이 코드는 입력받은 문자열에서 신규 단어를 찾으면 딕셔너리에 해당 단어를 키로 하여 값 0 + 1의 결과인 1을 추가한다. 만약 이미 존재하는 단어면 저장되어 있던 단어 출현 빈도수가 get으로 반환되며, 이 값에 1을 더한다. 즉, 단어를 찾으면 빈도수가 1 증가하고, 단어를 찾지 못하면 딕셔너리에 값 1과 함께 항목이 새로 추가되는 것이다. 이것이 우리가 바라는 것이다.

이 예제에서 문자열 클래스의 split 메서드는 하나의 문자열을 쪼개서 각 단어로 구성된 리스트로 만드는 데 사용된다. 더 자세한 내용은 2.12절에서 확인해 보자.

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