我想将一个列表的每个元素与另一个列表的每个元素相乘.
lst1 = [1, 2, 1, 2]
lst2 = [2, 2, 2]
lst3 = []
for item in lst1:
for i in lst2:
rs = i * item
lst3.append(rs)
这可以工作,但是在大型数据集中效率非常低,并且可能需要很长时间才能完成循环.请注意,两个列表的长度在此处可能有所不同.
我可以使用非内置数据结构.我检查了numpy,在ndarray中似乎有一种称为广播的方法.我不确定这是否可行.到目前为止,将数组与标量相乘可以正常工作.
arr = np.arange(3)
arr * 2
返回:
array([0, 2, 4])
但是它们与其他数组配合使用的方式有些不同,我似乎无法实现上述目标.
我想这一定是直截了当的,但是我现在似乎找不到确切的解决方案.任何输入将不胜感激.谢谢.
顺便说一句,不考虑效率here的方案也存在类似问题
编辑:谢谢你的答案.乘法有效,请参阅Dval的答案.但是,我也需要以完全相同的方式进行加法和除法.因此,我对问题进行了更新.
编辑:我可以使用numpy数组本身,所以我不需要将列表转换为数组再返回.