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

Python如何使用for循环实现两个列表对应位置元素相除

错误原因

你写的双层for循环(包括列表推导式里的两层for、单独写的嵌套for循环),执行逻辑是拿lst2里的每一个元素,和lst1里的所有元素挨个算一遍除法,相当于把两个列表的元素做了全量交叉配对,3个元素乘3个元素自然得到9个结果,完全不是按位置配对的逻辑。
另外你写的显式嵌套循环还有额外问题:内外层循环都用x当循环变量,内层的x会直接覆盖外层的x取值,就算逻辑方向对也跑不出正确结果。

正确实现方式

方法1:使用zip()配对对应位置元素(推荐)

zip()可以将多个可迭代对象中对应位置的元素打包为元组,直接遍历就能拿到同索引的配对元素,写法最简洁:

lst1 = [101, 2, 3]
lst2 = [69, 0, 0]
output_lst = [num2 / num1 for num1, num2 in zip(lst1, lst2)]
print(output_lst)
# 输出:[0.6831683168316832, 0.0, 0.0]

注意:如果两个列表长度不一致,zip()会默认截断到较短列表的长度,需要严格等长计算的话可以提前加长度校验逻辑。

方法2:按下标索引遍历

如果后续需要用到索引值,可以通过索引取值遍历,逻辑更直白:

output_lst = []
for i in range(len(lst1)):
    output_lst.append(lst2[i] / lst1[i])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:45:36