我尝试“超出范围列表索引”创建这个索里的代码,并显示消息为什么这个源代码是“列表索引超出范围”
def main():
pass
data = [1,2,3,4,5]
temp = data[0]
i = 0
n = len(data)
while i<n:
data[i]=data[i+1]
i+=1
print data
if __name__ == '__main__':
main()
请帮我解决了这个源代码
我尝试“超出范围列表索引”创建这个索里的代码,并显示消息为什么这个源代码是“列表索引超出范围”
def main():
pass
data = [1,2,3,4,5]
temp = data[0]
i = 0
n = len(data)
while i<n:
data[i]=data[i+1]
i+=1
print data
if __name__ == '__main__':
main()
请帮我解决了这个源代码
基本上,您可以通过将while i<n
更改为while i<n-1
来解决此问题。
但更好的是,变更:
i = 0
n = len(data)
while i<n:
data[i]=data[i+1]
i+=1
要:
n = len(data)
for i in range(0,n-1):
data[i] = data[i+1]
data[n-1] = ... # Whatever you want to set the last entry to
如果你想要做的就是除去第一要素,然后只需使用:
temp = data.pop(0)
print data
如何使用while修复该源代码? –
请在答案中看到第一行:“你可以通过改变'while while i
ouhh对不起兄弟,我不小心:) –
在while
循环的最后一次迭代中,语句data[i+1]
尝试访问列表data
的不存在索引i+1
。
我不理解,我向你请求源代码,例如 –
如果i的值是4,那么数据[i + 1]是指第五个索引,它没有被定义
除了代码之外,您还应该发布异常回溯。它通常包含发生错误的确切行。 –
我的请求示例 –