admin 管理员组

文章数量: 1184232


2024年3月5日发(作者:switch国行有哪些游戏)

filter函数的使用方法及实例

Filter函数是Python内置的一个高阶函数,它可以用于对可迭代对象进行过滤操作。Filter函数接受两个参数,第一个参数是一个函数,第二个参数是一个可迭代对象。它的作用是将可迭代对象中的每个元素都传递给第一个参数所指定的函数进行判断,如果返回值为True,则保留该元素,否则将其过滤掉。

下面我们来看一下filter函数的使用方法及实例:

1.基本使用方法

```python

def is_even(num):

return num % 2 == 0

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

result = filter(is_even, lst)

print(list(result)) # [2, 4, 6, 8]

```

上述代码中,我们定义了一个is_even函数,用于判断一个数是否为

偶数。然后我们创建了一个包含1~9的列表lst,并使用filter函数对其进行过滤操作,将其中偶数保留下来并放入result中。最后我们通过list()函数将result转换为列表并打印输出。

表达式实现

```python

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

result = filter(lambda x: x % 2 ==0 , lst)

print(list(result)) # [2,4 ,6 ,8]

```

上述代码中,我们使用lambda表达式来定义判断条件,将其作为filter函数的第一个参数传入。其余操作与基本使用方法相同。

3.过滤空字符串

```python

lst = ['', 'hello', '', 'world', '']

result = filter(None, lst)

print(list(result)) # ['hello', 'world']

```

上述代码中,我们创建了一个包含空字符串的列表lst,并使用filter函数对其进行过滤操作,将其中非空字符串保留下来并放入result中。在这里,我们将None作为filter函数的第一个参数传入,表示使用默认的判断条件(即判断元素是否为真),其余操作与基本使用方法相同。

4.过滤字典

```python

def is_adult(person):

return person['age'] >= 18

people = [{'name': 'Tom', 'age': 20}, {'name': 'Jerry', 'age': 15},

{'name': 'Lucy', 'age': 25}]

result = filter(is_adult, people)

print(list(result)) # [{'name': 'Tom', 'age': 20}, {'name': 'Lucy', 'age':

25}]

```

上述代码中,我们定义了一个is_adult函数,用于判断一个人是否成年(年龄大于等于18岁)。然后我们创建了一个包含三个人信息的字典列表people,并使用filter函数对其进行过滤操作,将其中成年人保留下来并放入result中。最后我们通过list()函数将result转换为列

表并打印输出。

5.实现链式过滤

```python

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

result = filter(lambda x: x % 2 ==0 , filter(lambda x: x > 4 , lst))

print(list(result)) # [6 ,8]

```

上述代码中,我们使用两个lambda表达式实现了对列表lst的链式过滤操作。首先,第一个lambda表达式将列表中大于4的元素保留下来;然后,第二个lambda表达式将保留下来的元素中偶数保留下来。最终,我们将过滤结果转换为列表并打印输出。

以上就是filter函数的使用方法及实例。通过以上实例,相信大家已经掌握了filter函数的基本用法和常见应用场景。


本文标签: 函数 使用 过滤 操作 判断