같은 동작을 구현하는 또 다른 방법은, 존재하지 않는 키에 접근할 때 발생시키는 KeyError 예외를 활용하는 것이다. 예외가 발생하고 이를 처리하는 비용을 제외하면(아이템 80 “try/except/else/finally의 각 블록을 잘 활용하라” 참조), 키를 한 번만 읽고, 값을 한 번만 대입하면 되므로 더 효율적이다.
try:
count = counters[key]
except KeyError:
count = 0
counters[key] = count + 1