匿名函数与高阶函数
在 Python 中,函数不仅可以像变量一样被传递,还能作为其他函数的参数或返回值。本章将介绍匿名函数(lambda 表达式)与高阶函数的基本用法和实际应用。
匿名函数(lambda)
匿名函数是没有名字的函数,常用于简洁地表示一些功能简单的函数。
语法
lambda 参数列表: 表达式
示例
add = lambda x, y: x + y
print(add(3, 5)) # 输出:8
lambda 表达式适用于临时、一次性使用的小函数。
高阶函数
高阶函数是指接受函数作为参数或返回另一个函数的函数。
常见的高阶函数包括:
map()filter()reduce()(需从functools模块导入)
map()
map(func, iterable) 将函数应用于可迭代对象中的每个元素。
nums = [1, 2, 3, 4]
squares = list(map(lambda x: x**2, nums))
print(squares) # 输出:[1, 4, 9, 16]
filter()
filter(func, iterable) 用于筛选出使函数返回 True 的元素。
nums = [1, 2, 3, 4]
even = list(filter(lambda x: x % 2 == 0, nums))
print(even) # 输出:[2, 4]
reduce()
reduce(func, iterable) 累积地对序列元素进行计算。
from functools import reduce
nums = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, nums)
print(product) # 输出:24
函数作为返回值
函数可以返回另一个函数,这在装饰器、回调等场景中非常有用。
def make_multiplier(n):
return lambda x: x * n
double = make_multiplier(2)
print(double(5)) # 输出:10
实战示例:对字符串列表统一处理
names = ["alice", "BOB", "ChArLiE"]
standardized = list(map(lambda name: name.capitalize(), names))
print(standardized) # 输出:['Alice', 'Bob', 'Charlie']
总结
lambda提供了一种快速定义短小函数的方式。- 高阶函数让代码更加函数式、简洁。
map()、filter()和reduce()是处理序列的利器。- 熟练使用高阶函数有助于提升代码表达力与可维护性。
相关内容
- 解释型语言与编译型语言对比 本章节将介绍解释型语言与编译型语言的区别,包括它们的工作原理、优缺点以及适用场景。了解两者的差异有助于选择合适的语言进行项目开发。
- 第一个 Python 程序 本章节将引导你编写并运行第一个 Python 程序。我们将通过一个简单的示例程序,帮助你理解 Python 的基础语法、输入输出和代码执行流程。
- 安装 Python 和配置开发环境 本章节将引导你安装 Python 和配置开发环境,包括 Python 的安装步骤、常用的开发工具配置以及虚拟环境的创建。学习如何配置适合开发的环境对顺利开始 P...
- Python 简介与应用领域 Python 是一种高级编程语言,以简洁易懂的语法和强大的功能在开发者中广泛流行,广泛应用于数据科学、Web 开发、人工智能、自动化脚本等多个领域。它的丰富库和...
- 注释与代码风格 本章节将介绍如何在 Python 代码中添加注释,并遵循 Python 的代码风格规范。良好的代码风格和注释可以提高代码的可读性和可维护性,是编写高质量 Pyt...
- 输入与输出 本章节将介绍 Python 中的输入与输出操作。你将学习如何使用 `input()` 函数获取用户输入,以及如何使用 `print()` 函数输出数据到控制台。