当我们需要压缩或者过滤掉列表中符合某个条件的元素时,我们可以使用Python内置函数compress()
。
compress()
函数
compress()
函数接受两个参数:第一个参数是一个可迭代的对象;第二个参数是一个可迭代的布尔值序列。compress()
会返回一个由可迭代对象中对应布尔值为True的元素所组成的迭代器。
语法如下:
compress(data, selectors)
示例1
下面是一个简单的例子。我们有一个列表,将其中小于5的元素从列表中过滤掉。
numbers = [1, 10, 3, 5, 7, 9, 2, 4, 6, 8]
selectors = [n < 5 for n in numbers]
res = compress(numbers, selectors)
print(list(res))
输出结果:
[1, 3, 2, 4]
示例2
下面是另一个例子。我们将一个列表中长度大于2的单词过滤出来。
words = ['cat', 'window', 'defenestrate']
selectors = [len(word) > 2 for word in words]
res = compress(words, selectors)
print(list(res))
输出结果:
['cat', 'window', 'defenestrate']
总结
compress()
函数提供了一种过滤或者筛选列表的方法,可以将符合条件的元素组成一个迭代对象。使用compress()
函数,我们可以简单高效地完成对列表中元素的过滤。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 用compress()过滤 - Python技术站