파이썬(Python)에서 딕셔너리 자체는 반복 가능한(iterable) 객체가 아닙니다. 하지만 items(), keys(), values() 메서드는 반복 가능한 뷰(view) 객체를 반환하기 때문에, 이들을 활용하면 딕셔너리의 내용을 손쉽게 순회할 수 있습니다.
items() 메서드로 키와 값 함께 출력하기
items() 메서드는 키와 값이 하나의 쌍으로 묶인 튜플(tuple)들의 목록을 반환합니다. 이를 for 루프와 함께 사용하면 다음과 같습니다.
>>> d1 = {'name': 'Ravi', 'age': 23, 'marks': 56}
>>> for t in d1.items():
print(t)
('name', 'Ravi')
('age', 23)
('marks', 56)
키와 값을 각각의 변수에 할당하기
각 튜플에서 키(key)와 값(value)을 분리하여 두 개의 변수에 저장한 후 순회할 수도 있습니다. 파이썬의 언패킹(unpacking) 기능을 활용한 방식으로, 실무에서 가장 널리 사용되는 패턴입니다.
>>> d1 = {'name': 'Ravi', 'age': 23, 'marks': 56}
>>> for k, v in d1.items():
print(k, v)
name Ravi
age 23
marks 56
keys() 메서드로 키를 순회하고 값 가져오기
keys() 메서드가 반환하는 반복 가능한 객체를 사용하면 각 키를 순회하면서, 해당 키와 연관된 값을 get() 메서드로 가져올 수 있습니다.
>>> for k in d1.keys():
print(k, d1.get(k))
name Ravi
age 23
marks 56
참고: values() 메서드
키 없이 값만 필요한 경우에는 values() 메서드를 사용하는 것이 가장 간결합니다.
>>> for v in d1.values():
print(v)
Ravi
23
56
정리하면, 딕셔너리 순회에는 상황에 따라 세 가지 메서드를 선택할 수 있습니다. 키와 값을 모두 다룰 때는 items(), 키만 다룰 때는 keys(), 값만 다룰 때는 values()를 사용하는 것이 바람직합니다.