admin 管理员组

文章数量: 1184232


2024年3月5日发(作者:网页制作与设计专业)

filter函数的用法wps

```python

```

其中,function是一个函数,用于判断每个元素是否符合条件;iterable是一个可迭代对象,可以是列表、元组、字符串等。

filter函数的作用是对iterable中的每个元素,依次调用function函数进行判断,如果返回值为True,则保留该元素;如果返回值为False,则过滤掉该元素。最后,filter函数将返回一个迭代器,该迭代器包含了所有符合条件的元素。

接下来,我们来具体讨论filter函数的用法。

1. 使用lambda函数

```python

numbers = [1, 2, 3, 4, 5, 6]

even_numbers = filter(lambda x: x % 2 == 0, numbers)

print(list(even_numbers)) # 输出[2, 4, 6]

```

上述代码中,lambda函数定义了判断条件x % 2 == 0,即判断x是否为偶数。filter函数根据该条件过滤出列表中的偶数,并返回一个迭代器。最后,我们使用list函数将该迭代器转换为列表,并进行输出。

2.使用自定义函数

除了使用lambda函数外,我们还可以自定义一个函数,用于指定判断条件。例如,我们定义一个函数is_positive,用于判断一个数是否为正数。然后使用filter函数过滤出列表中的正数,可以使用以下代码:

```python

def is_positive(x):

return x > 0

numbers = [-1, 2, -3, 4, -5, 6]

positive_numbers = filter(is_positive, numbers)

print(list(positive_numbers)) # 输出[2, 4, 6]

```

上述代码中,自定义函数is_positive判断x是否大于0,即判断x是否为正数。filter函数根据该条件过滤出列表中的正数,并返回一个迭代器。最后,我们使用list函数将该迭代器转换为列表,并进行输出。

3.过滤字符串

```python

strings = ['apple', 'banana', 'grape', 'orange',

'watermelon']

long_strings = filter(lambda s: len(s) >= 5, strings)

print(list(long_strings)) # 输出['banana', 'orange',

'watermelon']

```

上述代码中,lambda函数根据字符串的长度进行判断,判断条件为len(s) >= 5、filter函数根据该条件过滤出长度大于等于5的字符串,并返回一个迭代器。最后,我们使用list函数将该迭代器转换为列表,并进行输出。

4. 使用None作为判断条件

在使用filter函数时,可以使用None作为判断条件。当函数返回值为None时,filter函数会过滤掉该元素。例如,我们想要过滤出列表中的奇数,可以使用以下代码:

```python

numbers = [1, 2, 3, 4, 5, 6]

odd_numbers = filter(lambda x: x % 2, numbers)

print(list(odd_numbers)) # 输出[1, 3, 5]

```

上述代码中,lambda函数定义了判断条件x % 2,当x为奇数时,返回值为1,代表True;当x为偶数时,返回值为0,代表False。filter函数根据该条件过滤出列表中的奇数,并返回一个迭代器。最后,我们使用list函数将该迭代器转换为列表,并进行输出。

总结:

filter函数是Python中用于过滤序列的内置函数。它接受一个函数和一个可迭代对象作为参数,返回一个迭代器,该迭代器包含了所有符合

条件的元素。filter函数可以与lambda函数或自定义函数一起使用,用于指定判断条件,也可以使用None作为判断条件。filter函数可以过滤数字、字符串等不同类型的元素。通过合理地使用filter函数,我们可以方便地过滤出我们想要的元素,提高编程效率。


本文标签: 函数 判断 条件 列表