一、前言
前几天在Python最强王者群【莫生气】问了一个Python
列表基础的问题,一起来看看吧。他提问的代码如下:
lst = ['鲁班', '鲁大师', '鲁班大师', '鲁智深']
for i in lst:
if i.startswith('鲁'):
lst.remove(i)
print(lst)
这里是个常见列表的面试题,里边确实有点小坑,之前的历史文章也有写道,这里粉丝又问道,这里再拿出来给大家看看。
上述在循环列表的时候同时修改列表,会导致列表索引的改变,删除第一个鲁班的时候,后面的元素向前移动,['鲁大师', '鲁班大师', '鲁智深'],一次再进行判断的时候,判断的是鲁班大师,会跳过鲁大师,因为他的索引已经改变了。