Python教程:一文了解如何使用Lambda 表达式和 filter函数实现过滤器

简介: 在 Python 中,Lambda 表达式是一种匿名函数,也就是没有名称的函数。它允许您快速定义简单的单行函数,通常用于函数式编程中的一些场景,例如在高阶函数中作为参数传递。

 Lambda 表达式是一种简洁的函数定义方式,也称为匿名函数。它可以在需要函数对象的地方使用,并且通常用于一次性的、简单的函数。

1.Lambda 表达式语法


Lambda 表达式的语法如下:

lambda arguments: expression

image.gif

其中:

  • arguments 是逗号分隔的参数列表。
  • expression 是函数的返回值表达式。

2.Lambda 表达式示例


# 定义一个简单的 lambda 函数,计算两个数的和
add = lambda x, y: x + y
print(add(2, 3))  # 输出 5

image.gif

3.Python filter() 用法


3.1filter() 函数简介

filter() 函数用于过滤可迭代对象中的元素,根据指定的函数(通常是 lambda 函数)判断是否保留该元素。它返回一个迭代器,包含满足条件的元素。

3.2filter() 函数语法

filter(function, iterable)

image.gif

其中:

  • function 是一个用于判断每个元素的函数。
  • iterable 是一个可迭代的对象,如列表、元组、集合等。

3.3filter() 函数示例

# 使用 filter() 过滤出偶数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 输出 [2, 4, 6, 8, 10]

image.gif

4.结合 Lambda 和 filter 的列表过滤示例


4.1示例说明

假设有一个列表,包含多个字符串,我们希望过滤出其中长度大于等于 5 的字符串。

4.2示例代码

# 列表过滤示例
strings = ["apple", "banana", "orange", "grape", "kiwi", "melon"]
# 使用 lambda 和 filter 过滤出长度大于等于 5 的字符串
filtered_strings = list(filter(lambda s: len(s) >= 5, strings))
# 输出过滤后的结果
print(filtered_strings)  # 输出 ["apple", "banana", "orange", "grape"]

image.gif

4.3示例说明

以上示例首先定义了一个包含多个字符串的列表 strings。然后使用 filter() 函数结合 lambda 表达式,过滤出长度大于等于 5 的字符串,最后将结果转换为列表并输出。

通过以上示例,我们演示了如何使用 lambda 表达式和 filter() 函数进行列表过滤,以及如何结合它们来实现简洁而高效的代码。

5.结合 Lambda 和 filter 的字典过滤示例


filter() 函数结合 lambda 表达式可以实现类似于列表的过滤操作,但是需要注意的是,filter() 函数返回的是一个迭代器,需要通过转换为字典或者使用dict()函数来转换为字典。

5.1示例代码:

# 原始字典
original_dict = {'apple': 5, 'banana': 10, 'orange': 8, 'grape': 3, 'kiwi': 6}
# 使用 filter() 函数结合 lambda 表达式过滤出值大于等于 5 的键值对
filtered_items = filter(lambda item: item[1] >= 5, original_dict.items())
# 将过滤后的迭代器转换为字典
filtered_dict = dict(filtered_items)
# 输出过滤后的字典
print(filtered_dict)  # 输出 {'apple': 5, 'banana': 10, 'orange': 8, 'kiwi': 6}

image.gif

6.结合 Lambda 和 filter 的元组过滤示例


6.1示例说明

假设有一个包含多个整数的元组,我们希望过滤出其中的偶数。

6.2示例代码

# 原始元组
numbers_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
# 使用 lambda 和 filter 过滤出偶数
filtered_numbers_tuple = tuple(filter(lambda x: x % 2 == 0, numbers_tuple))
# 输出过滤后的结果
print(filtered_numbers_tuple)  # 输出 (2, 4, 6, 8, 10)

image.gif

7.结合 Lambda 和 filter 的集合过滤示例


7.1示例说明

假设有一个包含多个字符串的集合,我们希望过滤出其中长度大于等于 5 的字符串。

7.2示例代码

# 原始集合
strings_set = {"apple", "banana", "orange", "grape", "kiwi", "melon"}
# 使用 lambda 和 filter 过滤出长度大于等于 5 的字符串
filtered_strings_set = set(filter(lambda s: len(s) >= 5, strings_set))
# 输出过滤后的结果
print(filtered_strings_set)  # 输出 {'apple', 'banana', 'orange', 'grape'}

image.gif


目录
相关文章
|
1天前
|
数据采集 存储 数据处理
使用Python获取1688商品详情的教程
使用Python爬取1688商品详情,涉及requests库抓取页面、BeautifulSoup解析HTML,安装必要库如requests、beautifulsoup4、pandas和lxml。通过get_page发送请求,BeautifulSoup解析提取如标题、价格等信息。数据处理后可使用pandas保存至CSV。注意遵守法律法规和网站政策,避免频繁请求。[代码片段及更多详情见链接
|
1天前
|
Python
python函数
python函数
5 0
|
1天前
|
Python
python之print函数
python之print函数
7 0
|
2天前
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python实现深度学习模型:BERT模型教程
使用Python实现深度学习模型:BERT模型教程
46 0
|
2天前
|
Python
Python yield与实现教程分享
Python yield与实现教程分享
|
1月前
|
算法 Python 容器
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
50 0
|
1月前
|
存储 程序员 Shell
Python 进阶指南(编程轻松进阶):十、编写高效函数
Python 进阶指南(编程轻松进阶):十、编写高效函数
55 0
|
1月前
|
存储 Shell C++
零基础学会python编程——输入 / 输出函数与变量
零基础学会python编程——输入 / 输出函数与变量
103 0
|
Python
Python编程中类的属性获取、设置、判断是否存在等,实战hasattr和getattr函数的应用案例!
Python编程中类的属性获取、设置、判断是否存在等,实战hasattr和getattr函数的应用案例!
152 0
|
编解码 安全 Python
【Python编程】八、Python函数详解
【Python编程】八、Python函数详解
134 0
【Python编程】八、Python函数详解