lambda() 和 map() 函数
2025-02-17
Python 提供了许多强大的内置函数和特性,使得数据处理和函数式编程变得简单而高效。本文将详细介绍 lambda 和 map 函数的用法及其应用场景。
lambda 表达式
lambda 表达式用于创建匿名函数。它是一种简洁的函数定义方式,适用于需要一个简单函数而不想正式定义的场合。
用法
# 传统函数
def add(x, y):
return x + y
# lambda 表达式
add_lambda = lambda x, y: x + y
print(add_lambda(2, 3)) # 输出: 5特点
lambda函数可以有多个参数,但只能有一个表达式。- 适用于简单的计算或作为高阶函数的参数。
示例
# 使用 lambda 表达式进行排序
pairs = [(1, 'one'), (2, 'two'), (3, 'three')]
pairs.sort(key=lambda pair: pair[1])
print(pairs) # 输出: [(3, 'three'), (1, 'one'), (2, 'two')]map 函数
map 函数用于将一个函数应用到一个或多个可迭代对象的每个元素上,返回一个迭代器。
用法
def square(x):
return x * x
numbers = [1, 2, 3, 4]
squared = map(square, numbers)
print(list(squared)) # 输出: [1, 4, 9, 16]特点
map可以接受多个可迭代对象作为参数。- 返回一个迭代器,需要用
list()或tuple()转换为列表或元组。
示例
# 使用 lambda 和 map 结合
numbers = [1, 2, 3, 4]
squared = map(lambda x: x * x, numbers)
print(list(squared)) # 输出: [1, 4, 9, 16]综合示例
以下是一个综合示例,展示如何结合使用 zip、lambda 和 map:
# 两个列表的元素相加
a = [1, 2, 3]
b = [4, 5, 6]
summed = map(lambda x, y: x + y, a, b)
print(list(summed)) # 输出: [5, 7, 9]
# 使用 zip 和 map 计算两个列表的点积
dot_product = sum(map(lambda x, y: x * y, a, b))
print(dot_product) # 输出: 32