python - 在 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)
但显然我无论如何都没有正确地遍历数组,我认为这是我需要正确学习以用于其他目的的东西。谢谢!
解决方案
当您像以前一样在数组中循环时,您的 for 变量(在此示例中i
)是数组的当前元素。
例如,如果您ar
是[1,5,10]
,则i
每次迭代中的值是1
、5
和10
。因为你的数组长度是 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]
推荐阅读
- java - JPA 仅返回 @ManyToOne 对象的第一个实例
- python - keras:更改图像对象的尺寸以输入 ANN?
- c++ - std::minstd_rand 的界限是什么?
- amazon-web-services - 命令没有成功退出 aws cloudformation package --template template.yml exit status 255
- python - Selenium instagram bot:在该点不可点击 其他元素将收到点击
- javascript - (JS) 完整的菜鸟,将 *.json 代码导入变量
- python - 在上述目录中导入文件时出错
- php - 如何在php中随机组合两个字符串
- mysql - 在 SQL 中加入 3 个不同的表
- python - 在 Python 中读取 word2vec 二进制文件