2024-09-29 17:46:47 发布
网友
下面的代码引发了一个IndexError,谁能解释一下为什么这段代码的逻辑不起作用?在
IndexError
midterms = [90, 80, 89, 87, 97, 100] for mark in midterms: newMark = mark + 2 midterms[mark] = newMark print(midterms)
Jim Fasarakis-Hilliard和我有相同的答案。代码的另一个解决方法是:
midterms = [90, 80, 89, 87, 97, 100] print [mark+2 for mark in midterms]
也会产生
[92, 82, 91, 89, 99, 102]
python
如果您不熟悉python(作为初学者,我不知道enumerate)的另一种方法是使用Jerrybibo的建议。代码如下:
midterms = [90, 80, 89, 87, 97, 100] for i in range(len(midterms)): newMark = midterms[i] + 2 midterms[i] = newMark print(midterms)
因为您使用列表中包含的值作为索引;mark采用值90, 80, ..., 100。订阅midterm[90]显然超出了界限。在
mark
90, 80, ..., 100
midterm[90]
为了迭代这些项,同时也有位置的句柄,Python提供了enumerate,它提供了一个索引和当前值:
enumerate
midterms = [90, 80, 89, 87, 97, 100] for ind, mark in enumerate(midterms): newMark = mark + 2 midterms[ind] = newMark print(midterms)
实际上,这允许遍历列表并轻松地更改它。在
Jim Fasarakis-Hilliard和我有相同的答案。代码的另一个解决方法是:
也会产生
[92, 82, 91, 89, 99, 102]
python
如果您不熟悉python(作为初学者,我不知道enumerate)的另一种方法是使用Jerrybibo的建议。代码如下:
因为您使用列表中包含的值作为索引;
mark
采用值90, 80, ..., 100
。订阅midterm[90]
显然超出了界限。在为了迭代这些项,同时也有位置的句柄,Python提供了
enumerate
,它提供了一个索引和当前值:实际上,这允许遍历列表并轻松地更改它。在
相关问题 更多 >
编程相关推荐