我有一个名单,我想删除一个可选的名字,但下面的行
if newArray[i]==a:
上面写着“索引器错误:列表索引超出范围”
newArray = ['John','Alex','Sophia','Rick']
a = str(raw_input('Type your name if you want to delete : '))
if a in newArray:
for i in range(len(newArray)):
if newArray[i]==a:
del newArray[i] # I want to delete it
else:
print newArray[i]
您不需要for循环:
不要同时迭代并从列表中删除元素。你知道吗
最好这样做:
随着循环的进行,一旦从
newArray
中删除了一个项,就不可能再到达for循环的末尾。如果len(newArray)
现在是3,则无法获取第四个元素,因此newArray[3]
将引发错误。你知道吗一个更为python的方法可能是使用列表理解。你知道吗
但是对于长列表,它可能比
.index()
方法慢(尽管我不打算分析它并查看它)。你知道吗相关问题 更多 >
编程相关推荐