【问题标题】:I'm wondering why this error comes up, IndexError: list index out of range [duplicate]我想知道为什么会出现这个错误,IndexError: list index out of range [重复]
【发布时间】:2020-04-28 07:53:12
【问题描述】:

我刚开始学习python,我的水平是0,我只是检查1个程序,它给了我错误:

IndexError: 列表索引超出范围

def array123(nums):
    for i in range(len(nums)):
        if nums[i]==1 and nums[i+1]==2 and nums[i+2]==3:
            return True
    return False

if __name__=="__main__":
    array123([0, 2, 2,1,2])

IndexError Traceback(最近调用 最后)在 ----> 1 个数组123([0, 2, 2,1,2])

in array123(nums) 1个定义数组123(数字): 2 for i in range(len(nums)): ----> 3 如果 nums[i]==1 和 nums[i+1]==2 和 nums[i+2]==3: 4 返回真 5 返回错误

IndexError: 列表索引超出范围

请有人解释一下逻辑。

【问题讨论】:

    标签: python indexing


    【解决方案1】:

    由于您的数组实际上不包含序列“1,2,3”,因此 i 将递增到 3,然后您对“i+3”的检查将访问超出范围的元素 #6。 你的循环应该是for i in range(len(nums)-len(searchString))searchString = "123"

    请将语言作为标签添加到您的问题中。

    【讨论】:

    • 感谢您的信息,如果您介意的话,您能否帮助我理解这里的逻辑是如何工作的,并提供 1-2 个示例。
    • 你从左到右穿过你的数组,并在每个位置检查接下来的三个数字是否正好是 1、2、3。如果是这样,你立即返回,如果不是,你再往右走一步。尝试添加一些 print() 语句来理解算法。
    猜你喜欢
    • 2023-03-27
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2020-10-27
    • 2018-02-20
    • 1970-01-01
    相关资源
    最近更新 更多