列表循环删除容易出错,对它进行删除后会使得每个元素对应的下标发生改变,第一次之后,删除的元素并不是在原有的列表上进行删除
例如:
lis = ['aike','men','alex','pomelo','peach'] for i in range(len(lis)): del lis[i] print(lis)
可以看到,输出结果并不是在原有列表逐一删除,并且随着列表的更新,下标和长度都会发生改变,长度不够时,程序报错
['men', 'alex', 'pomelo', 'peach'] ['men', 'pomelo', 'peach'] ['men', 'pomelo'] File "D:/PycharmProjects/untitled/day7/数据类型汇总.py", line 22, in <module> del lis[i] IndexError: list assignment index out of range
注:
for i in range(len(lis)):
当中的range(len(lis))第一次获取到lis列表的长度后,已经固定不变了,所以不会随着列表的长度而发生改变。