You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中计算两列表对应元素乘积之和的高效简洁实现方法

点积计算的高效原生Python实现

你要计算的是两个等长向量的点积(内积),原生Python可以用以下两种无需临时列表的高效实现:

1. 生成器表达式实现(最推荐)

直接在sum()中传入生成器表达式,不会生成完整的临时乘积列表,每迭代一次就计算一次乘积并直接累加,内存占用为O(1),列表长度越大,相比原实现的内存和性能优势越明显。

numbers = [1, 2, 3]
numba = [4, 5, 6]

result = sum(float(a) * float(b) for a, b in zip(numbers, numba))
print(result)

2. 函数式迭代器实现

如果偏好函数式写法,可以搭配operator.mul和map实现,所有步骤均为迭代器操作,同样不会产生临时列表:

from operator import mul

numbers = [1, 2, 3]
numba = [4, 5, 6]

result = sum(map(mul, map(float, numbers), map(float, numba)))
print(result)

性能说明

原实现需要先将所有乘积存入临时列表再求和,当列表长度达到百万级时,临时列表会占用大量内存,同时多次append操作也会带来额外开销。以上两种实现都省略了临时列表的存储环节,内存效率提升明显,计算速度也有小幅提升。

内容的提问来源于stack exchange,提问作者Peanut Jams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:39:01