25.2 반복문으로 딕셔너리의 키-값 쌍을 모두 출력하기

이번에는 딕셔너리와 for 반복문을 사용하여 간단하게 모든 키-값 쌍을 출력해보겠습니다.

>>> x = {'a': 10, 'b': 20, 'c': 30, 'd': 40}
>>> for i in x:
...     print(i, end=' ')
...
a b c d

for i in x:처럼 for 반복문에 딕셔너리를 지정한 뒤에 print로 변수 i를 출력해보면 값은 출력되지 않고 키만 출력됩니다. 그럼 키와 값을 모두 출력하려면 어떻게 해야 할까요?

이때는 for in 뒤에 딕셔너리를 지정하고 items를 사용해야 합니다.

for ,  in 딕셔너리.items():
     반복할 코드

다음은 for로 리스트 a의 모든 키와 값을 출력합니다.

>>> x = {'a': 10, 'b': 20, 'c': 30, 'd': 40}
>>> for key, value in x.items():
...     print(key, value)
...
a 10
b 20
c 30
d 40

for key, value in x.items():는 딕셔너리 x에서 키-값 쌍을 꺼내서 키는 key에 값은 value에 저장하고, 꺼낼 때마다 코드를 반복합니다. 따라서 printkeyvalue를 출력하면 키-값 쌍을 모두 출력할 수 있습니다.

물론 in 다음에 딕셔너리를 직접 지정하고 items를 사용해도 상관 없습니다.

for key, value in {'a': 10, 'b': 20, 'c': 30, 'd': 40}.items():
    print(key, value)

25.2.1  딕셔너리의 키만 출력하기

지금까지 items로 키와 값을 함께 가져왔는데, 키만 가져오거나 값만 가져오면서 반복할 수도 있습니다.

  • items: 키-값 쌍을 모두 가져옴
  • keys: 키를 모두 가져옴
  • values: 값을 모두 가져옴
  • 먼저 for 반복문에서 keys로 키를 가져오면서 반복해보겠습니다.

    >>> x = {'a': 10, 'b': 20, 'c': 30, 'd': 40}
    >>> for key in x.keys():
    ...     print(key, end=' ')
    ...
    a b c d
    

    딕셔너리의 키만 출력되었죠?

    25.2.2  딕셔너리의 값만 출력하기

    for 반복문에서 values를 사용하면 값만 가져오면서 반복할 수 있습니다.

    >>> x = {'a': 10, 'b': 20, 'c': 30, 'd': 40}
    >>> for value in x.values():
    ...     print(value, end=' ')
    ...
    10 20 30 40
    

    이처럼 for 반복문에서 keys를 사용하면 키만 꺼내오면서 반복하고, values를 사용하면 값만 꺼내오면서 반복합니다.