딕셔너리에서는 이런 식으로 키가 존재하면 그 값을 가져오고 존재하지 않으면 디폴트 값을 반환하는 흐름이 꽤 자주 일어난다. 그래서 dict 내장 타입에는 이런 작업을 수행하는 get 메서드가 들어 있다. get의 두 번째 인자는 첫 번째 인자인 키가 딕셔너리에 들어 있지 않을 때 돌려줄 디폴트 값이다. 이 방식도 키를 한 번만 읽고 값을 한 번만 대입한다. 하지만 KeyError를 사용하는 예보다 코드가 훨씬 짧다.

    count = counters.get(key, 0)
    counters[key] = count + 1

    in 식과 KeyError를 사용하는 방식을 여러 방법으로 더 짧게 쓸 수도 있지만, 어떤 방법을 써도 대입을 중복 사용해야 하므로 코드 가독성이 떨어진다. 따라서 사용하지 않는 편이 좋다.

    if key not in counters:
        counters[key] = 0
    counters[key] += 1
    
    if key in counters:
        counters[key] += 1
    else:
        counters[key] = 1
        
    try:
        counters[key] += 1
    except KeyError:
        counters[key] = 1
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.