精华内容
下载资源
问答
  • python列表索引超出范围
    2021-03-05 22:54:09

    我正在修改一些解决数独难题的代码。我添加了一个片段,将随机填充一些空单元格将随机值(1-9)。它检查此值是否有效(当前行、列或3x3正方形中未使用),如果有效,则用它替换空值。在

    问题是,当我检查当前3x3正方形中是否存在该值时,我偶尔会得到一个“IndexError:list index out of range”。我已经打印了值和当前单元格,并确定只有当列是倒数第二或倒数第7或第8列时才会发生问题。相关代码如下:

    这里是我为随机单元格生成10个随机值的地方。然后我使用isValid来查看它们是否在当前行、列或3x3正方形中使用。在for c in range(10):

    e = random.randint(1,9)

    print(e)

    i = random.randint(0,8)

    j = random.randint(0,8)

    print([i],[j])

    if initial_grid[i][j] == 0:

    if isValid(initial_grid,i,j,e):

    initial_grid[i][j] = e

    这是isValid函数。错误出现在最后一个if语句(if initial_grid[x][y]==e:),其中is表示列表索引超出范围。在

    ^{pr2}$

    只要其中一个随机值没有出现在第7列或第8列,代码就可以正常工作。如果将secTopY+3替换为secTopY+1,则可以消除该错误,但它不会正确检查3x3正方形。在

    我看不出列表索引在哪里超出范围。感谢任何帮助。在

    更多相关内容
  • # 大佬们这个显示“list index out of range”(中文:列表索引超出范围) #怎么解决? ``` import cv2 recognizer = cv2.face.LBPHFaceRecognizer_create() recognizer.read("C:\work\AI\AI-picture\Face ...
  • Python列表错误,列表索引超出范围

    千次阅读 2021-01-29 12:28:46
    如果我输入1234,那么Values包含字符串"1234"。在然后将字符串转换为整数ValueList=int(Values) # ...因此List[1]超出范围顺便说一句:不要用list之类的内置名称命名值。请看官方的naming conventions。在编辑...

    如果我输入1234,那么Values包含字符串"1234"。在

    然后将字符串转换为整数ValueList=int(Values) # converts string "1234" to integer 1234

    并将整数添加到空列表中

    ^{pr2}$

    所以你的列表只包含一个元素。

    因此List[1]超出范围

    顺便说一句:不要用list之类的内置名称命名值。

    请看官方的naming conventions。在

    编辑

    更正缩进后,代码仍然很危险。

    如果将x更改为<7,则代码将崩溃。在

    仍然危险代码x=7

    List=[]

    for i in range(0,x):

    verify=False

    while verify==False:

    Values=input("Enter Code")

    verify=Values.isdigit()

    ValueList=int(Values)

    List.append(ValueList)

    value1=int(List[0])

    value2=int(List[1])

    value3=int(List[2])

    value4=int(List[3])

    value5=int(List[4])

    value6=int(List[5])

    value7=int(List[6])

    value8p1=(value1*1)+(value2*3)+(value3*1)+(value4*3)+(value5*1)+(value6*3)+(value7*1)

    value9=math.ceil(value8p1//10)

    print(value9)

    因此,应在循环中进行计算,以避免索引错误:

    更新代码x = 4

    values = []

    for i in range(0, x):

    verify = False

    while verify == False:

    value = input("Enter Code")

    verify = value.isdigit()

    values.append(int(value))

    result = 0

    for index, value in enumerate(values):

    if index % 2 == 0:

    result += value * 3

    else:

    result += value

    finalResult = math.ceil(result // 10)

    print(finalResult)

    展开全文
  • 1234for i in range(len(lst)):if lst[i][0]==1 or lst[i][1]==1:lst.remove(lst[i])return lst这就产生了"indexerror:list index out of range"(索引错误:列表索引超出范围)为什么会发生这种情况?什么是lst?请...

    本问题已经有最佳答案,请猛点这里访问。

    1

    2

    3

    4for i in range(len(lst)):

    if lst[i][0]==1 or lst[i][1]==1:

    lst.remove(lst[i])

    return lst

    这就产生了"indexerror:list index out of range"(索引错误:列表索引超出范围)为什么会发生这种情况?

    什么是lst?请复制整个函数。

    如果你有五块钱,有人要你一块一块地把它们数出来,但是他们在你做的时候偷了一块,你就不算五块了,是吗?

    您正在修改正在迭代的列表。如果这样做,列表的大小就会缩小,因此最终lst[i]将指向列表的边界之外。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10>>> lst = [1,2,3]

    >>> lst[2]

    3

    >>> lst.remove(1)

    >>> lst[1]

    3

    >>> lst[2]

    Traceback (most recent call last):

    File"", line 1, in

    IndexError: list index out of range

    构建一个新的列表比较安全:

    1return [item for item in lst if item[0]!=1 and item[1]!=1]

    在迭代过程中,不应该从list中删除cx1(1)项;这会更改所有后续项的索引,因此会更改IndexError。你可以尝试一个简单的列表理解:

    1lst = [item for item in lst if (item[0] != 1 and item[1] != 1)]

    或者,如果目标是在适当的地方修改列表,那么lst[:] =。

    一般来说,这意味着您提供的是一个不存在列表元素的索引。

    例如,如果您的列表是[12,32,50,71],并且您在索引10中请求元素,那么您将完全超出界限并收到一个错误,因为只有元素0到3存在。

    通过推导,我得出结论,您的LST如下所示:

    lst=[…[val1,val2],[val1,val2],[val1,val2]……]

    我想这里发生的事情是你混淆了你的"我在射程内"和"我在射程内"(我也做过很多次)。

    出现错误的行是:删除(lst[i])

    您可以通过如下方式更改代码来更正此问题:

    1

    2

    3

    4for i in lst:

    if i[0] ==1 or i[1] ==1:

    lst.remove(lst[i])

    return lst

    您的代码在列表[i]之前的结构方式没有任何意义,您的i是一个大于lst中两个值项的数字。

    = D

    问题是您删除了列表中减小其大小的项。您需要做的是用要删除的索引创建一个数组,然后向后删除它们。

    另一种方法是创建一个临时列表,添加不想删除的元素,然后用包含所有要保留元素的列表覆盖初始列表。

    展开全文
  • 我需要一些基本的代码帮助,每次使用变量program_controls添加要存储在数组中的按钮列表时,我都会尝试创建一个新列表,其中包含变量self.add_programs的值。在当我尝试这个:self.add_programs = list()self.rows +...

    我需要一些基本的代码帮助,每次使用变量program_controls添加要存储在数组中的按钮列表时,我都会尝试创建一个新列表,其中包含变量self.add_programs的值。在

    当我尝试这个:self.add_programs = list()

    self.rows += 1

    program_controls = xbmcgui.ControlButton(

    int(position_start),

    int(position_top),

    int(program_width),

    int(program_height),

    program_title,

    focusTexture = self.path + self.button_focus,

    noFocusTexture = self.path + self.button_nofocus,

    textColor ='0xFFFFFFFF',

    focusedColor ='0xFF000000'

    )

    self.add_programs[self.rows].append(ProgramControls(program_controls, program))

    它给我错误:IndexError:list index超出范围

    错误跳到这一行:

    ^{pr2}$

    代码如下:class ProgramControls(object):

    def __init__(self, control, program):

    self.control = control

    self.program = program

    class MyClass(xbmcgui.WindowXML):

    def __init__(self):

    self.add_programs = list()

    self.rows = 0

    def GoDown(self):

    self.add_programs = list()

    self.rows += 1

    program_controls = xbmcgui.ControlButton(

    int(position_start),

    int(position_top),

    int(program_width),

    int(program_height),

    program_title,

    focusTexture = self.path + self.button_focus,

    noFocusTexture = self.path + self.button_nofocus,

    textColor ='0xFFFFFFFF',

    focusedColor ='0xFF000000'

    )

    self.add_programs[self.rows].append(ProgramControls(program_controls, program))

    prog_button = [elem.control for elem in self.add_programs]

    if self.programs == False:

    self.addControls(prog_button)

    你能帮我在每次添加按钮列表时如何将按钮存储在数组中吗?在

    如果可能的话,请告诉我。在

    展开全文
  • python中列出索引超出范围 - python

    千次阅读 2020-12-11 03:34:45
    这是编译器引用的我的代码的一部分,我无法理解它出了什么问题,但是当我编译它时,它说: indexerror:列表索引超出范围 参考方案 唯一可能的原因是Montakhabha少于11个元素。请注意您的条件是h ,因此您也在代码中...
  • 错误:列表索引超出范围Python(Error: List Index out of Range Python)我已经查看了所有错误以找到解决方案,但我找不到可行的解决方案!我得到列表索引超出范围错误。“手”和“甲板”都列在这里。def draw(self,...
  • 我尝试在python中测试一个简单的2d地图坐标生成器。它创建了一个带有x和y数组的Tile对象,这样我就可以访问坐标并修改它们的属性。在这将创建贴图对象并用二维坐标平面中的平铺填充它map = [[ Tile(True)for y in ...
  • 如果我们尝试访问白色并且如果使用print(color [5])访问白色 ,那么它将给我们一个错误,即IndexError:列表索引超出范围 。 Here we all can see that I’m trying to print the value of a list at an index ‘5...
  • 我一直在尝试创建一个程序,它必须读入一个文件,找到唯一的单词和标点,将它们放到一个列表中,然后获取每个单词的位置并将它们存储在一个列表中。然后,使用列表,程序将重新创建文件。这是我的代码:import time...
  • 编辑:我想我找到了在进一步检查代码之后,我发现您正在使用if x!=0 & y!=0。这是有点明智,不符合逻辑,所以它不会给你想要的结果。使用and而不是&,看看你的问题是否消失了。在为了便于阅读,我将对其进行...
  • 当我检查列表a的长度时,我总是得到一个列表索引超出范围异常。根据用户输入的内容,第二个if或{}部分的错误会弹出。我知道当用户输入被分割时,列表被正确地创建了,因为我把它打印出来。。。所以我有点不明白为...
  • def Discount(money): sum=0 for i in money: sum=sum+money[i] if sum<500: return sum,sum elif sum>=500 and sum<1000: return sum,sum*0.9 elif sum>=1000 and sum<2000: return sum,sum*0.8 ...
  • 文章目录 问题描述 解决方案 对比 参考文献 问题描述 同时输出列表中的当前值和下一个值,超出范围返回None l = [1, 2, 3, 4, 5] for i, current in enumerate(l): following = l[i + 1] or None print(current, ...
  • 我试着在一个3个文本文件中添加18个列表项,每个项对应6个项。paths[0]和paths[1]文本文件是正确的,但是第三个paths[2]只得到3个项目。在mainStudents = ["1 Name Surname D1", "2 Name Surname D2" ...16x]def ...
  • 我从github复制这段代码并尝试在python上运行它。我得到了以下错误。我对python和raspberry pi不熟悉。有人来解决这个问题吗?在错误:if(bool(sys.argv[1]) and bool(sys.argv[2])): IndexError: list index out of...
  • 我就是不明白为什么我的名单超出范围。在我已经被这个问题困扰了一辈子了,我也不知道到底是什么问题。在显然我对编程还不熟悉。在def list(self,filename):with open(filename, "r") as listTeams:teamCount = 0...
  • 求教:Python列表索引超出范围

    千次阅读 2019-10-15 11:03:41
    初学者,这是一个简单的代码 import sys from xlrd import open_workbook input_file = sys.argv[1] workbook = open_workbook(input_file) print(‘Number of worksheets:’,workbook.nsheets) ...
  • 所以对于一个编程任务,我们必须用python重写sort函数来对单词列表进行排序。...我遇到了“索引器错误:字符串索引超出范围”错误。到目前为止我得到的是def insertion_sort(bookwords):for index in range(1,l...
  • 想通过二分法求出列表中的55,可是提示索引超出范围,请问是为什么啊? test_list = [1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77] #初始列表 site = len(test_list) // 2 #列表中间位置 count = 0 #计数 while test_...
  • /c i+1 break for a in range(n): b=b+float(numbers[a]) break print(b) 错误提示: Traceback (most recent call last): File "F:\pythonProject\加权计算器.py", line 24, in weight[i]=fcredits[i]/c IndexError...
  • 如何在python列表中查找某个元素的索引方法二:利用enumerate函数。每个人的心中美景皆不相同,有人喜欢追逐,此地没有就去别地。而小编钟情于等待,今年没有,小编静等来年。天空永不会消失,一场大雪值得花心思...
  • I have written a simple python programl=[1,2,3,0,0,1]for i in range(0,len(l)):if l[i]==0:l.pop(i)This gives me error 'list index out of range' on line if l[i]==0:After debugging I could figure out tha...
  • 它的工作方式应该是这样的:它需要两个列表。标记一些索引,最好居中。父母双方都切换标记索引。其他索引按顺序转到其父元素。如果该父元素中已经存在相同的元素,则它将映射并检查同一元素在其他父元素的位置并到达...
  • Python新手,完全初学者,希望能帮助您理解错误所在。在从时间表api获取json,我需要将其保存到mysql数据库import requestsimport urllib2from urllib2 import urlopenimport jsonimport mysql.connectorsite =...
  • for i in range(len(lst)):if lst[i][0]==1 or lst[i][1]==1:lst.remove(lst[i])return lstThis gives "IndexError: list index out of range" Why is this happening?解决方案You're modifying the list you're ...
  • Python基础学习之列表的介绍

    千次阅读 2021-03-17 02:52:23
    2、列表简介Python内置的一种数据类型是列表:list。list是一种有序的集合。列表由一系列按特定顺序排列的元素组合。...当索引超出范围时,Python会报一个IndexError错误,所以,要确保索引不要越界。如果要取最后...
  • for i in range(len(lst)):if lst[i][0]==1 or lst[i][1]==1:lst.remove(lst[i])return lstThis gives "IndexError: list index out of range" Why is this happening?解决方案You're modifying the list you're ...
  • 在 如果您想更进一步,可以使用itertools编写滑动窗口分组函数,一个类似zip(当窗口的右边缘离开列表末尾时停止),一个类似于zip_longest(仅当窗口的左边缘关闭时停止):def groupwise(iterable, n): groups = ...
  • 我想从这个数组中删除"hello... 我检查了len(token)的范围; 它是(0,5)。这是代码:token=['hi','hello','how','are','you']stop='hello'for i in range(len(token)):if(token[i]==stop):del(token[i])我尝试使用它作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,155
精华内容 6,462
关键字:

python列表索引超出范围