用python求解两个数组相乘
时间: 2024-09-08 22:02:41 浏览: 51
python中numpy基础学习及进行数组和矢量计算
在Python中,如果你想要对两个数组(列表)进行元素对应相乘的操作,可以使用内置的`zip`函数配合列表推导式来实现。下面是一个例子:
假设有两个列表`list1 = [1, 2, 3]`和`list2 = [4, 5, 6]`,你可以这样计算它们对应元素相乘的结果:
```python
list1 = [1, 2, 3]
list2 = [4, 5, 6]
product_list = [x * y for x, y in zip(list1, list2)]
```
这里`zip(list1, list2)`会创建一个迭代器,每次迭代返回一对元素,比如`(1, 4)`, `(2, 5)`, `(3, 6)`。列表推导式遍历这些元素对,并计算它们的乘积,最终得到一个新的列表`product_list = [4, 10, 18]`。
如果两个列表长度不同,`zip`函数会在最短的列表结束时停止创建元组。如果你需要对应元素相乘后得到的结果与两个输入列表中的较长者长度相同,则可以使用`itertools.zip_longest`函数。
```python
from itertools import zip_longest
list1 = [1, 2, 3, 7]
list2 = [4, 5, 6]
product_list = [x * y for x, y in zip_longest(list1, list2, fillvalue=1)]
```
在这个例子中,因为`list1`比`list2`长,所以`zip_longest`会使用`fillvalue=1`来填充较短列表的缺失值,计算结果将包含所有的元素相乘,多余的元素使用1来处理。
阅读全文