在本教程中,我们将借助示例了解 Python filter() 函数。
filter()
函数从函数返回 True
的可迭代(列表、元组等)中提取元素。
示例
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# returns True if number is even
def check_even(number):
if number % 2 == 0:
return True
return False
# Extract elements from the numbers list for which check_even() returns True
even_numbers_iterator = filter(check_even, numbers)
# converting to list
even_numbers = list(even_numbers_iterator)
print(even_numbers)
# Output: [2, 4, 6, 8, 10]
filter() 语法
它的语法是:
filter(function, iterable)
filter() 参数
filter()
函数有两个参数:
返回:
filter()
函数返回一个迭代器。
注意:您可以轻松地将迭代器转换为列表、元组、字符串等序列。
示例 1:filter() 的工作
letters = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# a function that returns True if letter is vowel
def filter_vowels(letter):
vowels = ['a', 'e', 'i', 'o', 'u']
return True if letter in vowels else False
filtered_vowels = filter(filter_vowels, letters)
# converting to tuple
vowels = tuple(filtered_vowels)
print(vowels)
输出
('a', 'e', 'i', 'o')
这里,filter()
函数仅从letters
列表中提取元音字母。以下是这段代码的工作原理:
letters
列表的每个元素都传递给filter_vowels()
函数。- 如果
filter_vowels()
返回True
,则提取该元素,否则将其过滤掉。
注意:也可以使用循环过滤列表,但是,使用filter()
函数更干净。
示例 2:在 filter() 内部使用 Lambda 函数
numbers = [1, 2, 3, 4, 5, 6, 7]
# the lambda function returns True for even numbers
even_numbers_iterator = filter(lambda x: (x%2 == 0), numbers)
# converting to list
even_numbers = list(even_numbers_iterator)
print(even_numbers)
输出
[2, 4, 6]
在这里,我们在 filter()
中直接传递了一个 lambda function。
我们的 lambda 函数为偶数返回 True
。因此,filter()
函数返回一个仅包含偶数的迭代器。
示例 3:在 filter() 中使用 None 作为函数
# random list
random_list = [1, 'a', 0, False, True, '0']
filtered_iterator = filter(None, random_list)
#converting to list
filtered_list = list(filtered_iterator)
print(filtered_list)
输出
[1, 'a', True, '0']
当None
用作filter()
函数的第一个参数时,将提取所有为真值的元素(如果转换为布尔值,则给出True
)。
相关用法
- Python filter()用法及代码示例
- Python filecmp.cmpfiles()用法及代码示例
- Python fileinput.filelineno()用法及代码示例
- Python fileinput.lineno()用法及代码示例
- Python fileinput.input()用法及代码示例
- Python fileinput.isfirstline()用法及代码示例
- Python fileinput.filename()用法及代码示例
- Python calendar firstweekday()用法及代码示例
- Python string find()用法及代码示例
- Python dict fromkeys()用法及代码示例
- Python frexp()用法及代码示例
- Python float转exponential用法及代码示例
- Python fsum()用法及代码示例
- Python format()用法及代码示例
- Python calendar formatmonth()用法及代码示例
- Python float()用法及代码示例
- Python factorial()用法及代码示例
- Python fabs() vs abs()用法及代码示例
- Python calendar formatyear()用法及代码示例
注:本文由纯净天空筛选整理自 Python filter()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。