Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 딕셔너리의 모든 값 곱하기 – 반복문과 math.prod() 활용법

딕셔너리에 저장된 모든 요소(값)를 곱해야 하는 경우에는 딕셔너리의 키(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)  # -32076

math.prod()는 기본적으로 초기값이 1이므로, 위 예제와 동일한 결과(-32076)를 얻으려면 start=2를 지정해야 합니다. 초기값이 중요하지 않다면 start를 생략하고 math.prod(my_dict.values())만 사용해도 됩니다.