我尝试创建此源代码并显示消息“列表索引超出范围”
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()
请帮我修复此源代码
答案 0 :(得分:2)
基本上,您可以通过将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
答案 1 :(得分:1)
在while
循环的最后一次迭代中,语句data[i+1]
尝试访问列表i+1
的非现有索引data
。
答案 2 :(得分:1)
如果i的值为4,那么,data [i + 1]指的是第五个索引,未定义