首页 > 解决方案 > 关于索引错误和除法的问题

问题描述

我有两个列表,我想创建使用 for 循环生成商。具体来说,我想要 .5 和 .25 和 .125 并按此顺序排列。当然,我可以只取这些值并手动确定商,但我是从第一次尝试学习 Python 的人的角度来看待这个问题的。我已经阅读了一些关于 for 循环的其他文章,但不明白为什么下面会产生:索引错误:列表索引超出范围。因此,我不仅在寻找对这段代码的修改,而且还在寻找关于为什么会出现这种错误的合理解释。

x=[2,4,16]
y=[4,16,128]
for i in y:
    y[i]/x

标签: pythonpython-3.x

解决方案


看看以下内容:

x=[2,4,16]
y=[4,16,128]
for i in y:
    print(f"i: {i}")
    print(f"y: {y}")

这是输出:

i: 4
y: [4, 16, 128]
i: 16
y: [4, 16, 128]
i: 128
y: [4, 16, 128]

您正在y[4]第一个循环中寻找,但它不存在。如果你想遍历列表,你可以这样做:

x=[2,4,16]
y=[4,16,128]
for i in range(len(y)):
    print(f"i: {i}")
    print(y[i])

输出:

i: 0
4
i: 1
16
i: 2
128

推荐阅读