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

Python 列表索引超出范围:我不知道如何解决它,python,python-3.x,Python,Python 3.x,我不知道如何解决这个错误 代码如下: 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]) 只需在索引i+1之前添

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

代码如下:

     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])

只需在索引i+1之前添加一个大小检查,以防i位于oldsize的最后一项,这意味着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])

假设您的列表包含5个元素。其长度为5,索引范围为0到4

这将检查从0到4的索引i。如果您要求元素i+1,则最后一个i+1将为5,超出范围

为了纠正这一点,迭代次数不要超过i=3。您将要执行以下操作:

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

您可以按以下格式键入循环 对于i,j,单位为[1:]:


其中i是索引,j是该索引处的值。此代码将从第二个值中提取结果,留下第一个值,因为我们将其定义为从oldsize列表中的索引1中获取值。一旦您到达列表中的最后一项oldsize,如果hitboxx[0]==oldsize[i+1]行:正在尝试与下一个不存在的项目进行比较,因为您已经在上一个项目中。错误基本上是在上一次迭代中出现的。例如,如果oldsize有5个元素,则它们的索引范围为0到4。但您的第二行在上一次迭代中调用了索引5,而这是不存在的。因此出现了错误对不起,我没有指定我要做什么。我想做一个蛇游戏,这一定是检查蛇是否碰到自己的功能。我正试图用像oldsize和hitboxx这样的列表中的坐标来实现这一点,但是用这段代码它将永远打印调试文本一些文本。。。如何解决?我是初学者
for i in range(len(oldsize)):
for i in range(len(oldsize) - 1):