더북(TheBook)

in 연산자도 사전에 쓸 수 있다. in 연산자는 사전에서 어떤 것이 키인지 알려준다(값을 표현하는 것만으로는 충분하지 않다).

사전에서 어떤 값이 있는지 알아보기 위해 values 메서드를 사용할 수 있다. values 메서드는 값들의 컬렉션을 반환하므로 이를 in 연산자에서 사용할 수 있다.

>>> 'one' in eng2sp

True

>>> 'uno' in eng2sp

False

in 연산자는 리스트와 사전에 대해 다른 알고리즘을 사용한다. 리스트에서 in 연산자는 순서대로 정렬되어 있는 리스트의 원소들을 검색한다. 이에 대해서는 139쪽에서의 검색하기를 참조하라. 리스트가 길어지면 검색 시간도 비례해서 늘어난다.

사전에서 파이썬은 해시테이블(hashtable) 알고리즘을 사용한다. 해시테이블은 놀라운 속성을 갖고 있다. in 연산자는 사전에 항목이 아무리 많아도 같은 시간만 소비한다. 이에 대해서는 344쪽의 해시테이블에서 원리를 설명하지만, 지금 당장은 몇 개의 장을 더 학습하지 않으면 이 설명을 이해하기가 어려울 것이다.

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