더북(TheBook)

11.5 사전과 리스트

리스트는 사전에서 값으로 보인다. 예를 들어 문자와 빈도를 연결한 사전이 주어졌다면 이를 반대로 할 수 있다. 즉, 빈도와 문자를 연결한 사전을 만들 수 있다. 빈도가 같은 문자가 있다면 뒤집은 사전에서 값은 문자의 리스트가 되어야 한다.

다음은 사전을 뒤집는 함수다.

def invert_dict(d):

inverse = dict()

for key in d:

val = d[key]

if val not in inverse:

inverse[val] = [key]

else:

inverse[val].append(key)

return inverse

루프를 돌 때마다 keyd에서 키를 가져오고, val에는 키의 값을 가져온다. valinverse에 없다면 지금까지 본 적이 없다는 뜻이므로 새 항목을 생성하고 싱글턴(singleton, 원소 하나만 담은 리스트)으로 초기화한다. 그렇지 않고 이전에 본 값이면 해당 키를 리스트에 추가한다.

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