一、循环添加
lst = [1,2,3,4,5,6]
for i in lst:
lst.append(7) /这样写法就会一直持续添加7,因为每添加一个,列表都会多一个元素,就会一直循环下去一直加7
print(lst)
二、列表循环删除错误实例
li = [11, 22, 33, 44]
for e in li: /直接从列表中循环
li.remove(e)
print(li)
结果:
for的运⾏过程. 会有⼀个指针来记录当前循环的元素是哪⼀个, ⼀开始这个指针指向第0 个.
然后获取到第0个元素. 紧接着删除第0个. 这个时候. 原来是第⼀个的元素会⾃动的变成 第0个.
然后指针向后移动⼀次, 指向1元素. 这时原来的1已经变成了0, 也就不会被删除了.
用 del 或remove 会报错,用 pop 会剩下 11和22,也不行
那怎样才可以哪?
方法一:
li = [11, 22, 33, 44]
for i in range(len(li)):
li.pop()
print(li)
方法二:
li = [1,2,3,4]
lst = li[:]
for i in lst:
li.remove(i)
print(li)
注意: 由于删除元素会导致元素的索引改变, 所以容易出现问题. 尽量不要再循环中直接去删除元素. 可以把要删除的元素添加到另⼀个容器中然后再批量删除.