파이썬(Python)에서는 리스트나 문자열처럼 딕셔너리(dictionary)도 함수의 인수로 자유롭게 전달할 수 있습니다. 함수 내부에서는 전달받은 딕셔너리의 키(key)와 값(value) 쌍을 순회하며 원하는 작업을 수행할 수 있습니다.
기본 예제
아래 코드에서는 딕셔너리를 함수의 인수로 전달한 뒤, 함수가 키/값 쌍을 처리하고 그에 맞는 결과를 출력합니다.
d = {'a': 1, 'b': 2, 'c': 3}
def f(dict):
for k, v in dict.items():
print(k, 2 * v)
f(d)출력 결과
a 2 b 4 c 6
코드 설명
items()메서드는 딕셔너리의 모든 키-값 쌍을 (키, 값) 형태의 튜플로 반환하므로,for루프에서 두 변수로 한 번에 언패킹할 수 있습니다.- 딕셔너리는 참조(reference)로 전달되기 때문에 함수 내부에서 딕셔너리를 수정하면 원본 데이터에도 변경 사항이 그대로 반영됩니다.
- 구버전 파이썬 2에서 사용되던
iteritems()는 파이썬 3에서 제거되었으므로, 최신 코드에서는 반드시items()를 사용해야 합니다.
응용: ** 언패킹으로 전달하기
딕셔너리의 키 이름이 함수 매개변수 이름과 일치한다면, ** 연산자를 사용해 키워드 인수 형태로 전달할 수도 있습니다.
def g(a, b, c):
print(a + b + c)
d = {'a': 1, 'b': 2, 'c': 3}
g(**d) # 출력: 6이 방식은 여러 개의 설정값이나 옵션을 함수에 깔끔하게 넘겨야 할 때 특히 유용합니다.