download:拉钩Java工程师高薪训练营
下崽ZY:https://www.zxit666.com/4236/
匿名函数(lambda表达式)
在Python中,函数可以算的上是“一等公民”了,我们先回顾下函数的优点:
减少代码重复量
模块化代码
但是我们有没有想过,如果我们需要一个函数,比较简短,而且只需要使用一次(无需重复调用),那还需要定义一个有名字的函数么?
答案是否定的,这里我们就可以使用匿名函数来实现这样的功能。
我们先看看求一个数的平方,我们定义个函数怎么写:
def square(x):
return x**2
square(3)
复制代码
而lambda表达式就可以这样写:
square = lambda x: x**2
square(3)
复制代码
根据上面的例子,其实lambda表达式使用还是很简单的,如下:
lambda argument1, argument2,.....: expression
复制代码
接下来,介绍的map、filter和reduce函数,与lambda表达式结合使用,才能发挥其强大的作用了。
map函数
map函数的使用如下:
map(function, iterable)
复制代码
其作用是,对iterable的每个元素,都运用function这个函数,最后返回新的可遍历的集合。
a = [1,2,3,4,5]
b = map(lambda x: x*2,a)
print(list(b))
[2, 4, 6, 8, 10] 复制代码
filter函数
filter函数的使用如下:
filter(function, iterable)
复制代码
其作用是,对iterable的每个元素,都运用function这个函数进行判断,最后返回全部为True的新的可遍历的集合。
a = [1,2,3,4,5,6]
b = filter(lambda x :x%2 ==0, a)
print(list(b))
[2, 4, 6] 复制代码
reduce函数
reduce函数的使用如下:
reduce(function, iterable)
复制代码
function规定有两个参数,表示对iterable每个元素和上一次运算的结果,进行function运算,最后得到一个值,这里要注意,我们需要从functools中导入reduce。
from functools import reduce
a = [1,2,3,4]
b = reduce(lambda x,y: x*y,a)
print(b)
24 123*4 复制代码
总结
【拉钩Java工程师高薪训练营】lambda表达式
map、filter和reduce函数
推荐阅读
- 沙龙(如何使信息系统更加稳定)
- 京东一面(高并发下,如何保证分布式唯一全局 ID 生成())
- C语言与C++编程|C++ 并发编程(C++11 到 C++17 )
- Java常用实现八种排序算法与代码实现
- 人工智能|2021年净利润同比增长75.9% 孟晚舟称华为已穿过劫难黑障区
- 其他|华为发布21年财报 孟晚舟出席
- java|那个每天半夜发加班朋友圈的程序员,你给我站住!
- 面试|Bug改到怀疑人生…… | 每日趣闻
- spring|不懂SpringApplication生命周期事件(那就等于不会Spring Boot嘛)