#列表的循环删除:删除列表中所有姓张的人
lst = ['张绍刚','张节','白居易','张柏芝','李白','霍去病']
temp = []
for item in lst:
if item.startswith('张'):
temp.append(item)
for item in temp:
lst.remove(item)
print(lst)
思路:
- 如果只用一个for循环,容易遗漏,除非只有第一项符合被删除的要求:
当for循环找到姓张的人时,会将他从列表中删除,与此同时,后面会像排队一样补上空缺,但此时for就会继续向后一位循环,这时候就会遗漏一个人的名字
- 解决办法是再定义一个新数组——用于记录姓张的人名,使用两次for循环:
第一个for循环:用于查找姓张的人名,并且放到新数组中
第二个for循环:因为新数组中所有的人名都是符合要求的,所以直接遍历,用remove()函数删除就数组中符合要求的人名