溫馨提示×

python中filter函數(shù)怎么使用

小億
103
2023-09-19 21:36:40
欄目: 編程語言

在Python中,filter() 函數(shù)用于過濾一個序列(可迭代對象),根據(jù)函數(shù)的返回值來決定是否保留元素。它的語法如下:

filter(function, iterable)

其中,function 是一個用來判斷每個元素是否保留的函數(shù),iterable 是一個可以迭代的對象(例如列表、元組、集合、字符串等)。

filter() 函數(shù)會依次對 iterable 中的每個元素應用 function 函數(shù),如果 function 返回 True,則保留該元素,否則丟棄。最后,filter() 函數(shù)返回一個新的可迭代對象,其中包含保留的元素。

以下是一些使用 filter() 函數(shù)的示例:

  1. 過濾列表中的偶數(shù):
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_even(num):
return num % 2 == 0
even_numbers = filter(is_even, numbers)
print(list(even_numbers))  # 輸出:[2, 4, 6, 8, 10]
  1. 過濾字符串中的小寫字母:
text = "Hello, World!"
def is_lowercase(char):
return char.islower()
lowercase_chars = filter(is_lowercase, text)
print(''.join(lowercase_chars))  # 輸出:elloorld
  1. 使用 lambda 表達式過濾列表中的負數(shù):
numbers = [-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]
negative_numbers = filter(lambda x: x < 0, numbers)
print(list(negative_numbers))  # 輸出:[-1, -3, -5, -7, -9]

注意:在 Python 3 中,filter() 函數(shù)返回的是一個迭代器對象,如果需要直接查看結果,需要將其轉(zhuǎn)換為列表(list())。在 Python 2 中,filter() 函數(shù)返回的是一個列表。

0