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