딕셔너리에 저장된 모든 요소(값)를 곱해야 하는 경우에는 딕셔너리의 키(key)를 하나씩 순회하면서, 각 키에 해당하는 값을 이전까지의 곱셈 결과에 계속 곱해 주면 됩니다. 모든 순회가 끝난 뒤 변수에 남아 있는 값이 최종 곱셈 결과입니다.
여기서 딕셔너리(dictionary)란 키(key)와 값(value)이 한 쌍을 이루어 저장되는 파이썬의 자료구조를 의미합니다.
예제 코드
다음은 딕셔너리의 모든 값을 곱하는 과정을 보여주는 예제입니다.
my_dict = {'Jane':99,'Will':54,'Mark':-3}
my_result = 2
for key in my_dict:
my_result = my_result * my_dict[key]
print("딕셔너리의 값을 모두 곱한 결과 : ")
print(my_result)실행 결과
딕셔너리의 값을 모두 곱한 결과 : -32076
코드 설명
- 이름을 키로, 점수를 값으로 가지는 딕셔너리를 정의합니다.
- 곱셈 결과를 저장할 변수를 초기값 2로 선언합니다.
- for 반복문을 사용해 딕셔너리의 키를 하나씩 순회합니다.
- 각 단계마다 현재 키에 해당하는 값을 기존 변수의 값과 곱합니다.
- 곱한 결과를 다시 같은 변수에 저장하여 누적합니다.
- 모든 순회가 끝나면 최종 결과를 콘솔에 출력합니다.
더 간단한 방법: math.prod() 함수 활용
파이썬 3.8 이상에서는 math 모듈의 prod() 함수를 사용하면 반복문 없이 한 줄로 모든 값을 곱할 수 있습니다. 초기값을 지정하려면 start 매개변수를 활용하면 됩니다.
import math
my_dict = {'Jane':99,'Will':54,'Mark':-3}
result = math.prod(my_dict.values(), start=2)
print(result) # -32076math.prod()는 기본적으로 초기값이 1이므로, 위 예제와 동일한 결과(-32076)를 얻으려면 start=2를 지정해야 합니다. 초기값이 중요하지 않다면 start를 생략하고 math.prod(my_dict.values())만 사용해도 됩니다.