列表索引超出范围:我不知道如何解决I

2024-10-03 15:28:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道如何解决这个错误

代码是这样的:

     for i in range(len(oldsize)):   
          if hitboxx[0] == oldsize[i+1]:       #list index out of range
               print("Some TEXTeeeeeeeeeeeeeeeeeeeeeeeeeeee")
          print(i)
          print(oldsize[i])

Tags: of代码inforindexlenif错误
3条回答

如果i位于oldsize的最后一个项,那么只需在索引i+1之前添加一个大小检查,这意味着i+1将是“最后一个”项,它不存在

 for i in range(len(oldsize)):   
      if i + 1 < len(oldsize) and hitboxx[0] == oldsize[i+1]:
           print("Some TEXTeeeeeeeeeeeeeeeeeeeeeeeeeeee")
      print(i)
      print(oldsize[i])

或者,可以缓存oldsize的第一个项,并将该项与for循环中的项进行比较,然后更新缓存的项以使用for循环前进。此外,还可以使用enumerate访问索引和该索引处的项

lastItem = oldsize[0]
for i, item in enumerate(oldsize[1:]):    # iterate starting with the second element
    if hitboxx[0] == item:
        print("Some TEXTeeeeeeeeeeeeeeeeeeeeeeeeeeee")
    print(i)
    print(lastItem)
    lastItem = item

您键入以下格式的循环 对于枚举中的i,j(oldsize[1:]):

其中i是索引,j是该索引处的值,这段代码将从第二个值中获取结果,而第一个值则被定义为从oldsize列表的索引1中获取值

假设您的列表包含5元素。它的长度是5,索引从04

for i in range(len(oldsize)):

这将检查从04的索引i。如果请求元素i+1,则最后一个i+1将是5,超出范围

要修正这一点,请不要迭代超过i=3。您将要执行以下操作:

for i in range(len(oldsize) - 1):

相关问题 更多 >