# How to Multiply Two Lists in Python

In this post, we will see how to multiply two lists in Python. We want to find the product of list elements at corresponding positions.

Simply put, we have to perform the element-wise multiplication. So, let’s get started.

## Multiply two Lists in Python by Using a Loop

One straightforward approach is to iterate over both lists, compute the product of values at the same index and append it to a new list. Let’s see an example.

```list_one = [3, 4, 5 ,6, 8, 9]
list_two = [4, 5, 1, 0, 6]

product = []
for el1, el2 in zip(list_one, list_two):
product.append(el1*el2)

print("The product of two lists is: ", product)```

Output

`The product of two lists is:  [12, 20, 5, 0, 48]`

In the above example, we iterate over lists using the zip() method. It takes iterables (lists) and returns an iterator of tuples.

Moreover, make sure to run a loop n times, where n is the length of the smaller list.

The zip() method takes care of that as you can notice that list_one has six items and list_two has five, but the product list has five values only.

## Multiply two Lists in Python by Using List Comprehension

We can also use the list comprehension to perform element-wise multiplication. This method should be preferred over the previous one because it is easier and concise. Let’s see.

```list_one = [3, 4, 5 ,6, 8, 9]
list_two = [4, 5, 1, 0, 6]

product = [el1*el2 for el1, el2 in zip(list_one, list_two)] #element-wise multiplication

print("The product of two lists is: ", product)```

Output

`The product of two lists is:  [12, 20, 5, 0, 48]`

See, this is a short and simple approach.

## Multiply two Lists in Python by Using NumPy

Another method is to use the NumPy library. First, we convert both lists to NumPy arrays or ndarrays, i.e., arr1 and arr2.

Then, we multiply two arrays like we do numbers, i.e., arr1*arr2. Finally, we convert the ndarray to a list.

However, the length of both lists needs to be the same. Otherwise, we will get an error. Let’s see.

```import numpy as np

list_one = [3, 4, 5 ,6, 8, 9]
list_two = [4, 5, 1, 0, 6,]
n = min(len(list_one), len(list_two)) #get the minimum length

#convert to numpy arrays
arr1 = np.array(list_one)
arr2 = np.array(list_two)

product = arr1[:n]*arr2[:n] #element-wise multiplication

#convert numpy array to list
product = product.tolist()
print("The product of two lists is: ", product)```

Output

`The product of two lists is:  [12, 20, 5, 0, 48]`

Here, we take the length of the smaller array and multiply only that number of elements.

NumPy is a powerful library for scientific computations. It provides several methods and tools to create and work with arrays efficiently.

Therefore, if we want to calculate the element-wise product of large data, then using NumPy will be very efficient.