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

이번에는 딕셔너리와 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():
     반복할 코드
#↑ 들여쓰기 4칸

다음은 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)

여기서 in 연산자는 딕셔너리에 특정 키가 있는지 확인할 때도 사용할 수 있습니다.

  • 키 in 딕셔너리
  • 키 not in 딕셔너리
>>> x = {'a': 10, 'b': 20, 'c': 30, 'd': 40}
>>> 'a' in x
True
>>> 'a' not in x
False
>>> 'z' in x
False
>>> 'z' not in x
True

'a' in x와 같이 in 앞에 확인할 키를 지정하면 됩니다. 딕셔너리에 해당 키가 있으면 True, 없으면 False입니다(in 앞에 not을 붙였을 때는 키가 있으면 False, 없으면 True). 물론 TrueFalse가 나오므로 if 조건문에도 사용할 수 있습니다.

이번에는 키와 값을 따로 출력해보겠습니다. 먼저 keys를 사용해서 반복해보겠습니다.

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

이번에는 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를 사용하면 값만 꺼내오면서 반복합니다.