Q & A

딕셔너리를 더하려면 어떻게 해야 하나요?

딕셔너리는 + 연산자로 더할 수 없지만 update 메서드를 사용하면 +로 더한 것과 같은 효과를 낼 수 있습니다. 즉, update에 딕셔너리를 넣을 수 있고 키가 없으면 키를 추가하는 특성을 이용한 것입니다.

>>> x = {'a': 1, 'b': 2}
>>> y = {'c': 3, 'd': 4}
>>> x.update(y)
>>> x
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

파이썬 3.5 이상부터는 딕셔너리 언패킹을 이용한 병합을 지원합니다.

  • {**딕셔너리, **딕셔너리}
>>> {**x, **y}
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

딕셔너리와 세트는 while로 반복할 수 있나요?

딕셔너리와 세트를 while로 반복하려면 조금 복잡합니다. 다음과 같이 딕셔너리와 세트에서 이터레이터를 얻은 뒤에 next로 요소를 차례대로 꺼내면 됩니다. 이터레이터는 'Unit 39 이터레이터 사용하기', 예외 처리는 'Unit 38 예외 처리 사용하기'에서 설명하겠습니다.

x = {'a': 10, 'b': 20, 'c': 30, 'd': 40, 'e': 50}                # 딕셔너리
#x = {'strawberry', 'grape', 'orange', 'pineapple', 'cherry'}    # 세트
it = iter(x)                  # 이터레이터를 얻음
while True:
    try:
        print(x[next(it)])    # 딕셔너리에 키를 지정해서 값 출력
        #print(next(it))      # 세트의 요소 출력
    except StopIteration:
        break