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

파이썬으로 리스트의 모든 숫자를 곱하는 방법 완벽 정리

리스트에 포함된 모든 숫자를 곱하는 것은 파이썬 프로그래밍에서 자주 활용되는 기본 연산입니다. 이 글에서는 순회(traversing) 기법을 이용해 리스트의 모든 요소를 곱하는 방법을 단계별로 살펴보겠습니다.

먼저 사용자 입력을 저장할 리스트를 생성하고, 곱셈 결과를 담을 변수의 초기값을 1로 설정합니다. 그다음 리스트의 첫 번째 요소부터 마지막 요소까지 차례대로 순회하면서 각 숫자를 곱셈 변수에 하나씩 곱해 나가면 됩니다.

예제

입력: A=[5,6,3]
출력: 90
설명: 5*6*3 = 90

알고리즘

1단계: 리스트(lst)에 모든 숫자를 입력받는다.
2단계: 리스트의 모든 값을 곱하기 위해 순회 기법을 사용한다.
3단계: 변수 X를 1로 초기화한다.
4단계: 리스트의 처음부터 끝까지 반복하면서
       X = X * i 로 각 요소를 하나씩 곱한다.
5단계: 최종 결과 X를 출력한다.

예제 코드

# 리스트의 모든 숫자를 곱하는 함수
def mul_all_num(lst):
    x = 1
    for i in lst:
        x = x * i
    return x

# 드라이버 코드
A = list()
B = list()
C = list()

n1 = int(input("첫 번째 리스트의 크기를 입력하세요 :: "))
n2 = int(input("두 번째 리스트의 크기를 입력하세요 :: "))
n3 = int(input("세 번째 리스트의 크기를 입력하세요 :: "))

print("첫 번째 리스트의 요소를 입력하세요 ::")
for i in range(n1):
    k = int(input(""))
    A.append(k)

print("두 번째 리스트의 요소를 입력하세요 ::")
for j in range(n2):
    k1 = int(input(""))
    B.append(k1)

print("세 번째 리스트의 요소를 입력하세요 ::")
for j in range(n3):
    k1 = int(input(""))
    C.append(k1)

print("첫 번째 리스트의 모든 숫자의 곱 ::>", mul_all_num(A))
print("두 번째 리스트의 모든 숫자의 곱 ::>", mul_all_num(B))
print("세 번째 리스트의 모든 숫자의 곱 ::>", mul_all_num(C))

실행 결과

첫 번째 리스트의 크기를 입력하세요 :: 3
두 번째 리스트의 크기를 입력하세요 :: 4
세 번째 리스트의 크기를 입력하세요 :: 5
첫 번째 리스트의 요소를 입력하세요 ::
1
2
5
두 번째 리스트의 요소를 입력하세요 ::
3
2
4
5
세 번째 리스트의 요소를 입력하세요 ::
12
2
1
3
2
첫 번째 리스트의 모든 숫자의 곱 ::> 10
두 번째 리스트의 모든 숫자의 곱 ::> 120
세 번째 리스트의 모든 숫자의 곱 ::> 144

더 간단한 방법: math.prod() 활용

파이썬 3.8 이상 버전에서는 math 모듈의 prod() 함수를 사용하면 위 과정을 한 줄로 처리할 수 있습니다. 반복문 없이 리스트 전체의 곱을 손쉽게 계산할 수 있어 실무에서도 유용하게 활용됩니다.

import math

A = [5, 6, 3]
result = math.prod(A)
print(result)  # 출력: 90

마무리

직접 반복문을 작성하는 방식은 곱셈의 동작 원리를 이해하는 데 도움이 되며, math.prod()를 사용하는 방식은 코드를 더욱 간결하게 만들어 줍니다. 상황에 맞게 두 가지 방법을 선택하여 사용해 보시기 바랍니다.