本文共 564 字,大约阅读时间需要 1 分钟。
目标是想从list中删除特定类别的元素,但是发现用for循环删除后,有部分删掉了,还有部分剩下了
代码如下:list1=['a.txt','b.txt','c.txt','a.jpg','b.jpg','c.jpg']for im in list1: if im.split('.')[-1] != 'jpg': list1.remove(im)print(list1)
输出结果:
['b.txt', 'a.jpg', 'b.jpg', 'c.jpg']
会发现,b.txt
这个元素并没有被删掉,研究了一下输入输出发现:
改正也很简单,只要在for
循环时的list
后面加上[:]
即可,修改后的代码如下:
list1=['a.txt','b.txt','c.txt','a.jpg','b.jpg','c.jpg']for im in list1[:]: if im.split('.')[-1] != 'jpg': list1.remove(im)print(list1)
此时输出:
['a.jpg', 'b.jpg', 'c.jpg']
转载地址:http://zvgl.baihongyu.com/