Python循环遍历列表删除元素

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

版权声明:著作权归作者所有。

相关推荐

Python随机挑选列表的元素

Python提供了几种方法用于随机抽样。random.choice如果对随机的结果要求不严格,可以使用Python提供的random.choice。import random list = ['a','b','c','d'] print(random.choice(list)) random.choice可以称为伪随机,如果对random给定种子,那么它随机出来的结

JavaScript删除数组里重复的元素

JavaScript里有多种方法可以用来对数组元素去重。ES6 SetES6提供了一个Set对象,用它可以很简单便可以对数组元素去重。function uniq(arr) {    return Array.from(new Set(arr)); } filter另外也可以通过filter来对数组元素去重。functi

Python获取列表的元素个数

len()为Python的内置函数,它会返回对象里的项目数,这些对象可以是sequence(如string, bytes, tuple, list, range),也可以是collection (如dictionary, set)Python里的列表没有类似于length或size的属性和方法,可以使用len来获取列表的元素个数>&

Python 3按指定的元素分割列表

Python 3有多种方法可以用来分割列表。示例有以下列表li = ['a','b','c','.','aa','bb','cc','.','aaa','bbb','ccc'] 现需要按“.”分割列表。使用itertools.groupby>>>li = ['a','b','c','.','aa','bb','cc','.','a

Python:查询列表给定元素的索引

单一索引列表的index()函数返回列表里第一次遇到给定元素的索引。>>> ["a", "b", "c"].index("b") 1 多个索引如果需要返回给定元素的所有索引,则要遍历列表:indexes = [index for i