Python에서 두 목록 곱하기
-
zip()
메서드를 사용하여 Python에서 두 목록 곱하기 -
numpy.multiply()
메서드를 사용하여 Python에서 두 목록을 곱합니다 -
map()
함수를 사용하여 Python에서 두 목록을 곱합니다
이 튜토리얼은 Python에서 두 목록의 요소 별 곱셈을 수행하는 다양한 방법을 보여줍니다. 동일한 차원의 정수 목록 두 개가 있고 첫 번째 목록의 요소를 두 번째 목록의 동일한 위치에있는 요소와 곱하고 동일한 차원의 결과 목록을 가져 오려고한다고 가정합니다.
zip()
메서드를 사용하여 Python에서 두 목록 곱하기
파이썬에 내장 된zip()
메소드는 하나 이상의 이터 러블을 취하고 이터 러블을 튜플로 집계합니다. 리스트처럼[1,2,3]
과[4,5,6]
은[(1, 4), (2, 5), (3, 6)]
이됩니다. map()
메소드를 사용하여 두 목록 모두 요소별로 액세스하고 목록 이해 메소드를 사용하여 필요한 목록을 가져옵니다.
아래 코드 예제는 목록 이해력과 함께zip()
을 사용하여 1D 및 2D 목록을 여러 개 만드는 방법을 보여줍니다.
list1 = [2, 4, 5, 3, 5, 4]
list2 = [4, 1, 2, 9, 7, 5]
product = [x * y for x, y in zip(list1, list2)]
print(product)
출력:
[8, 4, 10, 27, 35, 20]
2D 목록의 곱셈 :
list1 = [[2, 4, 5], [3, 5, 4]]
list2 = [[4, 1, 2], [9, 7, 5]]
product = [[0] * 3] * 2
for x in range(len(list1)):
product[x] = [a * b for a, b in zip(list1[x], list2[x])]
print(product)
출력:
[[8, 4, 10], [27, 35, 20]]
numpy.multiply()
메서드를 사용하여 Python에서 두 목록을 곱합니다
Python의NumPy
라이브러리의multiply()
메소드는 두 개의 배열 / 목록을 입력으로 취하고 요소 별 곱셈을 수행 한 후 배열 / 목록을 반환합니다. 이 방법은 2D 곱셈을 위해 추가 작업을 할 필요가 없기 때문에 간단하지만,이 방법의 단점은NumPy
라이브러리 없이는 사용할 수 없다는 것입니다.
아래 코드 예제는numpy.multiply()
메서드를 사용하여 Python에서 1D 및 2D 목록을 곱하는 방법을 보여줍니다.
- 1D 곱셈 :
import numpy as np
list1 = [12, 3, 1, 2, 3, 1]
list2 = [13, 2, 3, 5, 3, 4]
product = np.multiply(list1, list2)
print(product)
출력:
[156 6 3 10 9 4]
- 2D 곱셈 :
import numpy as np
list1 = [[12, 3, 1], [2, 3, 1]]
list2 = [[13, 2, 3], [5, 3, 4]]
product = np.multiply(list1, list2)
print(product)
출력:
[[156 6 3]
[ 10 9 4]]
map()
함수를 사용하여 Python에서 두 목록을 곱합니다
map
함수는 함수와 하나 이상의 이터 러블을 입력으로 취하고 입력 목록에 제공된 함수를 적용하여 이터 러블을 반환합니다.
두 목록을 인수로map()
함수에 전달하여map()
함수를 사용하여 Python에서 두 목록의 1D 및 2D 요소 별 곱셈을 수행 할 수 있습니다. 아래 코드 예제는map()
을 사용하여 두 개의 Python 목록을 곱하는 방법을 보여줍니다.
1D 곱셈의 예제 코드 :
list1 = [2, 4, 5, 3, 5, 4]
list2 = [4, 1, 2, 9, 7, 5]
product = list(map(lambda x, y: x * y, list1, list2))
print(product)
출력:
[8, 4, 10, 27, 35, 20]
2D 곱셈에 대한 예제 코드 :
list1 = [[2, 4, 5], [3, 5, 4]]
list2 = [[4, 1, 2], [9, 7, 5]]
product = [[0] * 3] * 2
for x in range(len(list1)):
product[x] = list(map(lambda a, b: a * b, list1[x], list2[x]))
print(product)
출력:
[[8, 4, 10], [27, 35, 20]]