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

如何不依赖库实现索引+1与列表元素乘积求和的高效方法?

解决方法与模式说明

更高效的实现

你当前的手动循环速度偏慢,是因为Python层面的循环本身存在开销。不用额外导入库的话,直接用内置的sum函数搭配enumerate是最优方案——sum是底层C实现的函数,比手动写Python循环高效得多。

代码示例:

a = [1,5,6,7,11,15]
total = sum((idx + 1) * num for idx, num in enumerate(a))

运行结果为202,和你的示例计算结果一致。enumerate会直接返回元素的索引与对应值,不用手动通过range(len(a))去获取索引,代码也更简洁。

另外你提到列表是升序排列,但这个求和逻辑和升序属性无关,不需要特意利用它来优化计算。

计算对应的模式

这个计算属于加权求和的一种,权重就是元素的位置序号(从1开始)。放到数学范畴里,它等价于两个向量的点积(内积):一个向量是你的列表a,另一个是由1到列表长度的连续整数构成的向量,两者对应元素相乘后求和,就是点积的定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:37:02