本文共 1898 字,大约阅读时间需要 6 分钟。
在 Python 编程中,Lambda 函数是一种强大的工具,允许我们定义匿名函数。这种函数没有具体名称,适合用于快速定义单行函数,尤其在需要简洁操作的地方。
定义方式:Lambda 函数没有名称,直接使用表达式定义;而 def 函数则需要指定函数名称。
返回值:Lambda 返回的是一个函数对象,但这个对象不会被赋予标识符;而 def 定义的函数会将函数对象赋值给变量。
语法结构:Lambda 只能包含一个表达式,而 def 函数可以包含多个语句。
执行条件:Lambda 中不能使用语句式结构(如 if、for 等),而 def 函数则可以。
适用场景:Lambda 适用于定义简单的函数,而 def 则更适合复杂的逻辑和多行操作。
# 单参数 Lambda 示例g = lambda x: x ** 2print(g(3)) # 输出:9# 多参数 Lambda 示例g = lambda x, y, z: (x + y) ** zprint(g(1, 2, 2)) # 输出:9
Map 是 Python 内置的一个强大函数,用于将指定函数依次作用于可迭代序列的每个元素。其语法格式为:
map(function, iterable, ...)
def square(x): return x ** 2list(map(square, [1, 2, 3, 4, 5])) # 返回:[1, 4, 9, 16, 25]
list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])) # 返回:[3, 7, 11, 15, 19]
Apply 函数用于在指定参数下调用函数,特别适用于处理带有多个参数的函数调用。其语法格式为:
apply(func, *args, **kwargs)
def function(a, b): print(a, b)# 传递位置参数apply(function, ('good', 'better'))# 传递计算参数apply(function, (2, 3 + 6))# 传递混合参数apply(function, ('cai',), {'b': 'caiquan'})apply(function, (), {'a': 'caiquan', 'b': 'Tom'}) t1 = df.apply(lambda x: x.max() - x.min())
t2 = df.apply(lambda x: pd.Series([x.min(), x.max()], index=['min', 'max']), axis=1)
def f(x): return '%.2f' % xt3 = df.applymap(f)
import pandas as pdimport numpy as np# 创建 DataFramedf = pd.DataFrame(np.random.randn(4, 3), columns=['b', 'd', 'e'], index=['utah', 'ohio', 'texas', 'oregon'])# 列 wise 应用函数t1 = df.apply(lambda x: x.max() - x.min())# 行 wise 应用函数t2 = df.apply(lambda x: pd.Series([x.min(), x.max()], index=['min', 'max']), axis=1)# 元素级应用函数t3 = df.applymap(lambda x: '%.2f' % x)
通过这些实例可以看出,map 和 apply 函数在数据处理中的广泛应用,特别是在处理大量数据时,它们能够显著提高代码的简洁性和执行效率。
转载地址:http://bvlfk.baihongyu.com/