python之匿名函数

目录

 

前置知识

匿名函数


前置知识

如何给函数取别名:

在python中,函数名代表的是一块内存地址,该内存地址里存放函数内的代码。如果直接把函数名赋值给另一变量 a,也就使的a指向了函数名所指向的内存空间。由此 变量 a 就相当于该函数的别名

实例:

def add(a, b):
    return a + b


# 给add 取别名为fn
fn = add

# 通过fn调用函数
print(fn(1, 3))



匿名函数

lambda关键字能创建小型匿名函数这种函数省略了def 声明的标准步骤

lamda 函数的语法只包含一个语句,如下

lambda 参数列表:运算表达式

调用匿名函数的两种方式:

  1. 给匿名函数定义一个名字(不常用)
fn = lambda a, b: a + b
print(fn(4, 5))

    2. 把这个匿名函数当作参数传递给另一个函数

# calc 函数实现加减乘除法


def calc(a, b, fn):
    return fn(a, b)


# 做加法
print(calc(4, 5, lambda a, b: a + b))
# 做减法
print(calc(4, 5, lambda a, b: a - b))
# 做乘法
print(calc(4, 5, lambda a, b: a * b))
# 做除法
print(calc(4, 5, lambda a, b: a / b))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

### Python Lambda函数使用教程 #### 定义与基本语法 Lambda函数是一种小型匿名函数,在Python中用于创建简单的、一次性的功能。其定义方式不同于常规的`def`语句,而是采用更紧凑的形式来表达简单逻辑[^1]。 ```python # 常规函数定义 def square(num): return num * num # 对应的lambda表达式 square_lambda = lambda num: num * num ``` #### 应用场景举例 Lambda函数常被应用于高阶函数作为参数传递的情况,比如内置的`map()`、`filter()`和`reduce()`等函数内部调用时非常方便[^2]。 - **映射操作** 当需要对序列中的每一个元素执行相同的操作时,可以利用`map()`配合lambda实现快速转换: ```python numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(lambda x: x ** 2, numbers)) print(squared_numbers) # 输出:[1, 4, 9, 16, 25] ``` - **过滤条件** 对于筛选符合条件的数据项,则可通过`filter()`加上lambda完成高效过滤: ```python even_numbers = list(filter(lambda n: n % 2 == 0, range(10))) print(even_numbers) # 输出:[0, 2, 4, 6, 8] ``` - **聚合计算** 如果涉及到累积运算或者多值缩减成单个结果的情形下,`functools.reduce()`搭配lambda能发挥重要作用(需先导入模块): ```python from functools import reduce product_of_list = reduce((lambda x, y: x * y), [1, 2, 3, 4]) print(product_of_list) # 输出:24 ``` #### 实际编码优势 相较于传统命名函数而言,lambda由于省去了显式的名称声明过程,所以在某些特定场合下可以让代码显得更为简洁明了;不过需要注意的是过度依赖也可能降低可读性和维护难度[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值