📜  Python中的过滤器()

📅  最后修改于: 2022-05-13 01:54:59.769000             🧑  作者: Mango

Python中的过滤器()

filter() 方法在一个函数的帮助下过滤给定的序列,该函数测试序列中的每个元素是否为真。

句法:

filter(function, sequence)
Parameters:
function: function that tests if each element of a 
sequence true or not.
sequence: sequence which needs to be filtered, it can 
be sets, lists, tuples, or containers of any iterators.
Returns:
returns an iterator that is already filtered.
# function that filters vowels
def fun(variable):
    letters = ['a', 'e', 'i', 'o', 'u']
    if (variable in letters):
        return True
    else:
        return False
  
  
# sequence
sequence = ['g', 'e', 'e', 'j', 'k', 's', 'p', 'r']
  
# using filter function
filtered = filter(fun, sequence)
  
print('The filtered letters are:')
for s in filtered:
    print(s)

输出:

The filtered letters are:
e
e

应用:
它通常与 Lambda 函数一起用于分隔列表、元组或集合。

# a list contains both even and odd numbers. 
seq = [0, 1, 2, 3, 5, 8, 13]
  
# result contains odd numbers of the list
result = filter(lambda x: x % 2 != 0, seq)
print(list(result))
  
# result contains even numbers of the list
result = filter(lambda x: x % 2 == 0, seq)
print(list(result))

输出:

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

有关更多详细信息,请参阅Python Lambda 函数。