我试图逐个删除列表中的元素,并希望在同一for循环中删除后打印每个元素。你知道吗
我试着用下面的代码删除它们,但是它说 '索引器错误:列表分配索引超出范围'
usernames = ['yasir', 'anjum', 'moin', 'admin', 'iqbal']
if usernames:
for i in range(0, len(usernames)):
#print (usernames[i]) this is working fine
del (usernames[i])
else:
print('The list is already empty')
我希望在删除元素后打印它,直到删除完所有元素。你知道吗
使用
list.pop
方法。你知道吗如果你想保持秩序,倒过来。你知道吗
您使用的是来自
0..N-1
的固定循环,N
只计算一次,即当您第一次进入循环时。但是由于del()
N
(=len(username)
)随着环的每次跳闸而减小。在某个时刻,你到达i >= N
,因此IndexError: list index out of range
。你知道吗请尝试此变体:
del
语句使所有后面的元素移到列表的左侧。这就是为什么你得到了IndexError
——当你的循环到达列表的一半时,列表已经不够长了!你知道吗可以使用删除每个元素,一次删除一个
如果需要在删除元素后输出每个元素,则必须先将其保存在变量中。你知道吗
请注意,从列表中删除有点低效,因为列表中的其余元素必须重新编号。你知道吗
相关问题 更多 >
编程相关推荐