首页 > 解决方案 > 在 Python 3 中迭代数组

问题描述

我已经有一段时间没有编码并试图回到 Python 中了。我正在尝试编写一个简单的程序,通过将每个数组元素值加到一个总和来对数组求和。这就是我所拥有的:

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)

但显然我无论如何都没有正确地遍历数组,我认为这是我需要正确学习以用于其他目的的东西。谢谢!

标签: pythonarrayspython-3.xsum

解决方案


当您像以前一样在数组中循环时,您的 for 变量(在此示例中i)是数组的当前元素。

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

for i in ar:
    theSum = theSum + i

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

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

推荐阅读