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