Python循环遍历列表删除元素

时间:2022-06-01 18:35:29

有时需要根据条件删除列表的元素,有几种方法可以实现。这里假设determine(x)为判断条件的函数。

1、对原来的列表做过滤,生成一个新的列表:

list = [x for x in list if not determine(x)]

2、在原来列表上做切片,仅保留需要的元素

list[:] = [x for x in list if not determine(x)]

3、python2.x ifilterfalse()方法

from itertools import ifilterfalse()
list[:] = ifilterfalse(determine, list)

4、Python3 filterfalse()方法

from itertools import filterfalse
list[:] = filterfalse(determine, list)

方法3,4对列表的修改会反应到其他对此列表的引用上。