python - 为什么会超出范围?

标签 python python-3.x indexing error-handling

我收到IndexError:列表索引超出范围错误。我不知道为什么。有什么建议吗?

该代码试图查看数字列表是否为算术级数,在这种情况下,每个数字都加2。

def is_arith_progession(num_list):

    delta = num_list[1] - num_list[0]
    for num in num_list:
        if not (num_list[num + 1] - num_list[num] == delta):
        return False
    else:
        return True

print(is_arith_progession([2, 4, 6, 8, 10]))

最佳答案

您正在遍历值,而不是数组的索引。因此,num_list[num]可能超出范围。由于您引用了i+1元素,因此迭代到i < n-1

for i, _ in enumerate(num_list[:-1]):
    if num_list[i+1] - num_list[i]...

关于python - 为什么会超出范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52560212/

相关文章:

python - 在 Python 中将有符号长整型重新解释为无符号

python - 与Sublime Text一起使用时出现致命的Pylint错误

python - 如何以绘图方式格式化数字并避免转换为百万

performance - Postgres 上的 "update table"操作非常慢

python - 从 np.tril_indices 获取 "reverse"索引的有效方法

oracle - 如何获得 COUNT(col) ... GROUP BY 来使用索引?

python - 递归地将文件从子目录移动到父目录中的文件夹

python - 将 Pandas DateTimeIndex 转换为 Unix 时间?

python - 我可以检查 pandas dataframe 索引是否结束?

python - 有什么办法可以缩短这个列表的理解力吗?