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

Python如何将列表每个元素与其位置相乘?附示例与代码排查

现有代码问题梳理
  • input() 函数返回的是字符串类型,既无法直接执行数字乘法运算,也不能修改内部元素(Python字符串为不可变类型,直接对下标位置赋值会抛出异常)
  • 循环范围设置为range(1, len(base_id_num))会遗漏最后一个元素:range的右边界为开区间,若输入长度为7,该循环只会执行6次,漏掉第7位的计算
  • 位置计数逻辑错误:需求要求位置从1开始计算,但代码中用作乘数的n初始值为0,第一位元素会被乘0,和预期逻辑不符
  • 缺少求和逻辑:需求最终要得到所有乘积的总和,但现有代码仅尝试修改原序列元素,未做累加计算,打印的也是原序列而非总和结果
正确实现代码

普通易读版本:

base_id_num = input()
total = 0
# 遍历同时获取索引和对应字符
for idx, char in enumerate(base_id_num):
    # 字符转整数,乘(索引+1对应从1开始的位置)
    product = int(char) * (idx + 1)
    total += product
print(total)

简洁生成器表达式版本:

base_id_num = input()
total = sum(int(char) * (i+1) for i, char in enumerate(base_id_num))
print(total)

输入2452834测试,输出结果为119,和预期计算结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:06:00