avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home Python的内置函数filter()
文章

Python的内置函数filter()

Posted 2024-09-2 Updated 2024-08- 29
By RWO.
6~7 min read

Python 的内置函数 filter() 用于从一个可迭代对象(如列表、元组、字符串等)中过滤出所有满足某个条件的元素,并返回一个迭代器。

1. filter() 的语法

filter(function, iterable)
  • function:用于判断条件的函数,返回值为 True 或 False。如果 function 是 None,则直接返回 iterable 中为 True 的元素。
  • iterable:一个可迭代对象(如列表、元组等)。

2. 工作原理

filter() 函数会将 iterable 中的每一个元素传递给 function 进行处理,如果 function 返回 True,则该元素会被保留;否则,元素会被过滤掉。最终返回一个包含所有符合条件的元素的迭代器。

3. 示例

示例1:过滤出列表中所有的偶数

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

# 定义一个判断是否为偶数的函数
def is_even(n):
    return n % 2 == 0

# 使用 filter 过滤出偶数
even_numbers = filter(is_even, numbers)
print(list(even_numbers))  # 输出 [2, 4, 6, 8, 10]

示例2:使用 lambda 表达式过滤出长度大于3的字符串

words = ['apple', 'banana', 'kiwi', 'pear']

# 使用 lambda 表达式来过滤
long_words = filter(lambda word: len(word) > 3, words)
print(list(long_words))  # 输出 ['apple', 'banana', 'kiwi']

示例3:过滤出列表中的非空字符串

strings = ['hello', '', 'world', '', 'python']

# 使用 filter 过滤非空字符串
non_empty_strings = filter(None, strings)
print(list(non_empty_strings))  # 输出 ['hello', 'world', 'python']

4. 使用 filter() 和 list 进行类型转换

如果需要将 filter() 返回的迭代器转换为列表、元组等类型,可以使用内置的 list() 或 tuple() 函数。

示例4:将 filter() 的结果转换为列表

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 输出 [2, 4, 6]

5. 与列表推导式的对比

filter() 函数和列表推导式都可以用来过滤数据。列表推导式的写法更为简洁,但 filter() 更加清晰地表达了过滤的意图。

示例5:列表推导式与 filter()

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

# 使用 filter()
even_numbers_filter = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers_filter)  # 输出 [2, 4, 6]

# 使用列表推导式
even_numbers_list = [x for x in numbers if x % 2 == 0]
print(even_numbers_list)  # 输出 [2, 4, 6]

6. 小结

filter() 函数在需要根据条件筛选数据时非常有用。它通过提供一个过滤条件函数,让代码更具可读性和表达力。尽管在某些情况下,列表推导式可以替代 filter(),但 filter() 函数依然是处理大数据集时的理想选择,特别是在函数式编程风格中。

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

Python的内置函数map()

NEWER

Python的内置函数enumerate()

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy