더북(TheBook)

파이썬에는 값이 없는 키로 구성된 사전 컬렉션처럼 동작하는 내장 타입 set이 있다. set은 원소 추가가 빠르다. 회원 확인도 마찬가지다. set은 일반적인 집합 연산을 계산하기 위한 메서드와 연산자를 제공한다.

예를 들어 set 빼기는 difference 메서드나 - 연산자로 이용할 수 있다. 따라서 subtract는 다음과 같이 재작성할 수 있다.

def subtract(d1, d2):

return set(d1) - set(d2)

결과는 사전이 아니라 집합이지만, 이터레이션 같은 연산의 경우 동작은 같다.

이 책의 연습문제 중에 일부는 집합을 사용해서 간결하고 효율적으로 작성할 수 있다. 예를 들어 연습문제 10-7에서 사전을 사용한 has_duplicates를 살펴보자.

def has_duplicates(t):

d = {}

for x in t:

if x in d:

return True

d[x] = True

return False

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