python 匿名函数

目录

1. 基础用法

2.匿名函数与常规函数对比

3. 与map(function, iterable)函数结合

4.与filter(function, iterable) 函数结合

5.与 reduce(function, iterable) 函数结合


简介:匿名函数是以关键字 lambda,后面是一系列的参数,然后用冒号隔开,最后则是由这些参数组成的表达式。运用匿名函数,能让我们的代码更简洁、易读;通常的使用场景是:程序中需要使用一个函数完成一个简单的功能,并且该函数只调用一次

匿名函数的格式:
lambda argument1, argument2,... argumentN : expression

1. 基础用法

square = lambda x: x**2
square(3)
>> 9

2.匿名函数与常规函数对比

1).lambda 可以用在一些常规函数 def 不能用的地方,比如,lambda 可以用在列表内部,而常规函数却不能


l = [(lambda x: x*x)(x) for x in range(10)]
print(l)
>> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2).lambda 可以被用作某些函数的参数,而常规函数 def 也不能


l = [(1, 20), (3, 0), (9, 10), (2, -1)]
l.sort(key=lambda x: x[1]) # 按列表中元组的第二个元素排序
print(l)

>> [(2, -1), (3, 0), (9, 10), (1, 20)]

3).lambda 的主体是只有一行的简单表达式,并不能扩展成一个多行的代码块

lambda 专注于简单的任务,而常规函数则负责更复杂的多行逻辑

3. 与map(function, iterable)函数结合

函数 的第一个参数是函数对象,第二个参数是一个可以遍历的集合,它表示对 iterable 的每一个元素,都运用 function 这个函数,返回一个迭代器

squared = map(lambda x: x**2, [1, 2, 3, 4, 5])
print(squared)  # 返回一个 map类的迭代器
print(list(squared))  # 转成列表

>> <map object at 0x000002652C153100>
>> [1, 4, 9, 16, 25]

4.与filter(function, iterable) 函数结合

表示对 iterable 中的每个元素,都使用 function 判断,并返回 True 或者 False,最后将返回 True 的元素组成一个新的可迭代的对象

l = [1, 2, 3, 4, 5]
new_list = filter(lambda x: x % 2 == 0, l)
print(new_list)
print(list(new_list))

>> <filter object at 0x00000161F4833100>
>> [2, 4]

5.与 reduce(function, iterable) 函数结合

表示对 iterable 中的每个元素以及上一次调用后的结果,运用 function 进行计算,所以最后返回的是一个单独的数值

from functools import reduce

l = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x * y, l)
print(result)

>> 120

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值