繁体   English   中英

为什么此源代码是“列表索引超出范围”

[英]why this source code is “List index out of range”

我尝试创建此源代码并显示消息“列表索引超出范围”

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循环的最后一次迭代中,语句data[i+1]尝试访问列表data的不存在的索引i+1

如果i的值为4,则data [i + 1]引用第五个索引,该索引未定义

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM