Python中的filter函数

Python中的filter函数

Python中的filter函数

在Python中,filter()函数是内置函数中的一个,用于过滤序列中的元素。该函数接收一个函数和一个序列作为参数,将序列中的每个元素传递给函数,返回值为True的元素,最终返回一个新的列表。

语法

filter(function, iterable)

  • function:用于过滤的函数
  • iterable:待过滤的序列

示例代码

示例1:过滤偶数

def is_even(num):
    return num % 2 == 0

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(is_even, numbers))
print(even_numbers)

运行结果:

[2, 4, 6, 8, 10]

在这个示例中,我们定义了一个函数is_even(),用于判断一个数是否为偶数。然后我们创建一个包含1到10的数字列表,通过filter()函数将其中的偶数筛选出来,得到新的列表。

示例2:过滤包含特定子串的字符串

def has_substring(string):
    return "geek-docs.com" in string

strings = ["Hello, geek-docs.com", "Python is awesome", "Welcome to geek-docs.com"]
filtered_strings = list(filter(has_substring, strings))
print(filtered_strings)

运行结果:

['Hello, geek-docs.com', 'Welcome to geek-docs.com']

在这个示例中,我们定义了一个函数has_substring(),用于判断一个字符串中是否包含特定子串”geek-docs.com”。然后我们创建一个包含多个字符串的列表,通过filter()函数筛选出包含特定子串的字符串,得到新的列表。

使用Lambda表达式

除了通过定义函数来使用filter()函数,我们还可以使用Lambda表达式进行快速过滤。

示例3:使用Lambda表达式过滤负数

numbers = [-3, -2, -1, 0, 1, 2, 3]
positive_numbers = list(filter(lambda x: x > 0, numbers))
print(positive_numbers)

运行结果:

[1, 2, 3]

在这个示例中,我们使用Lambda表达式lambda x: x > 0来判断一个数是否为正数,然后通过filter()函数筛选出所有正数。

结语

通过filter()函数,我们可以非常方便地筛选出我们所需要的元素,使代码更加简洁高效。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程