【问题标题】:IndexError: list index out of range in array search [closed]IndexError:数组搜索中的列表索引超出范围[关闭]
【发布时间】:2015-07-06 02:53:51
【问题描述】:

我正在用 Python 编写一个简单的程序来执行线性搜索。但是当我运行这个程序时,它给了我这个错误:

Traceback (most recent call last):
  File "C:\Users\raj\Documents\EclipseProject\PythonProject1\myProgram.py", line 25, in <module>
    if array[myNumber] == search:
IndexError: list index out of range

这是我的程序:

array = []

numCase = input("Enter your number cases: ")

numCase = int(numCase)
array = [numCase]

print("Enter the number with", numCase, "times.")

for i in range(0, numCase):
    myNumber = input()
    myNumber = int(myNumber)
    array = [myNumber]

print("Enter the values which you're looking for: ")
search = input()
search = int(search)

for c in range(0, numCase):
    if array[myNumber] == search:
        print(search, "is present at", (c+1))
        break

# If number is absent!!
if c == numCase:
    print(search, "is not present!!")

【问题讨论】:

    标签: python search linear-search


    【解决方案1】:

    您当前的问题是这一行

    array = [myNumber]
    

    您所做的只是将array 设置为与此行重复的1 个元素的列表,而不是将每个元素添加到array。请改用增量运算符+=,这样您实际上将每个元素添加到array

    array += [myNumber]
    

    作为一种更惯用的替代方法,它看起来好像是在提示用户输入相同的数字“x”次。正如TheBlackCat 所述,您可以简单地使用

    构建array
    array = list(range(numCase))
    

    如果这实际上是您正在尝试做的事情。

    此外,您应该使用 c 作为您的数组索引,因为它是您正在迭代的内容。

    【讨论】:

    • 虽然这样做会更容易array = list(range(numCase))
    猜你喜欢
    • 2021-02-08
    • 2011-10-31
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多