在本教程中,我們將借助示例了解 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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。