📜  python中的filter

📅  最后修改于: 2020-07-15 08:25:02             🧑  作者: Mango

filter()方法借助一个测试序列中每个元素是否正确的函数来过滤给定的序列。

句法:filter(function, sequence)

参数: 
function:测试序列中每个元素是否正确的函数。
sequence:需要过滤的序列,可以是集合,列表,元组或任何迭代器的容器。
返回: 
返回已过滤的迭代器。
# 过滤元音的功能 
def fun(variable): 
    letters = ['a', 'e', 'i', 'o', 'u'] 
    if (variable in letters): 
        return True
    else: 
        return False
  
  
# 序列 
sequence = ['g', 'e', 'e', 'j', 'k', 's', 'p', 'r'] 
  
# 使用filter函数 
filtered = filter(fun, sequence) 
  
print('过滤后的字母是:') 
for s in filtered: 
    print(s) 

输出:

过滤后的字母是:
e
e

应用程序:
通常与Lambda函数一起使用 以分隔列表,元组或集合。 

# 一个包含偶数和奇数的列表.  
seq = [0, 1, 2, 3, 5, 8, 13] 
  
# 结果包含列表的奇数 
result = filter(lambda x: x % 2 != 0, seq) 
print(list(result)) 
  
# 结果包含列表的偶数 
result = filter(lambda x: x % 2 == 0, seq) 
print(list(result)) 

输出: 

[1、3、5、13] 
[0、2、8]