gpt4 book ai didi

python - 为什么我从 "ar[i]"中的 "for i in ar"得到一个 IndexError(或 TypeError,或者只是错误的结果)?

转载 作者:太空狗 更新时间:2023-10-29 20:41:26 25 4
gpt4 key购买 nike

我正在尝试使用 for 循环对列表的值求和。这是我的代码:

def sumAnArray(ar):
theSum = 0
for i in ar:
theSum = theSum + ar[i]
print(theSum)
return theSum

我收到以下错误:

line 13, theSum = theSum + ar[i]
IndexError: list index out of range

我发现我正在尝试做的事情显然和 sum(ar) 一样简单。但我想了解:为什么会出现此 IndexError,我应该如何编写 for 循环?循环实际上是如何工作的?


有关 Python 如何实现 for 循环和迭代器协议(protocol)的技术概述,请参见例如How does a Python for loop with iterable work? .

最佳答案

当您遍历列表时,您的 for 变量(在本例中为 i)是列表的当前元素。

例如,如果您的 ar[1, 5, 10],则每次迭代中的 i 值为 1510。因为您的列表长度是 3,所以您可以使用的最大索引是 2。因此,当 i = 5 时,您会得到 IndexError。您应该将代码更改为如下内容:

for i in ar:
theSum = theSum + i

或者如果你想使用索引,你应该创建一个从 0array length - 1 的范围。

for i in range(len(ar)):
theSum = theSum + ar[i]

关于python - 为什么我从 "ar[i]"中的 "for i in ar"得到一个 IndexError(或 TypeError,或者只是错误的结果)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51919448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com