有时需要根据条件删除列表的元素,有几种方法可以实现。这里假设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对列表的修改会反应到其他对此列表的引用上。