网易《python全栈工程师》 1.4.3 特殊函数
程序员文章站
2022-11-30 14:26:18
目录1. 课程目标2. lambda2.1 基本形式二级目录三级目录1. 课程目标2. lambda2.1 基本形式二级目录三级目录...
1. 课程目标
2. lambda
2.1 基本形式
lambda函数运行速度比for循环快,并不是所有的for循环都可以改成lambda函数。
只有简单的for循环才能写成lambda函数,复杂语句不能改写为lambda函数。
示例
>>> lam = lambda x,y: x + y
>>> type(lam)
<class 'function'>
>>> def add(x, y):
return x + y
>>> lam(2,3)
5
>>> add(2,3)
5
>>>
使用lambda函数能够简化代码行数
使用lambda函数
x>0 是判断语句,(i)是提供给判断语句的参数
>>> n = range(-5, 5)
>>> [True if i>0 else False for i in n]
[False, False, False, False, False, False, True, True, True, True]
>>> [(lambda x: x>0) (i) for i in n]
[False, False, False, False, False, False, True, True, True, True]
>>>
3. map
3.1 基本形式
map函数的使用,
>>> [i+1 for i in range(10)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> [(lambda x: x+1) (i) for i in range(10)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> m = map(lambda x: x+1, range(10))
>>> m
<map object at 0x0000014EB3263BE0>
>>> list(m)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
实现两个列表元素值的相加
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> [x+y for x,y in zip(a,b)]
[5, 7, 9]
>>> r = map(lambda x,y: x+y, a,b)
>>> r
<map object at 0x0000023D99EBB6D0>
>>> list(r)
[5, 7, 9]
>>>
4. filter()函数
4.1 基本形式
None代表不过滤,一次只能过滤一个参数
示例一,过滤出大于零的数字
>>> n = range(-5, 5)
>>> f = filter(lambda x: x>0, n)
>>> f
<filter object at 0x0000023D99EBB760>
>>> list(f)
[1, 2, 3, 4]
>>> [i for i in n if i>0]
[1, 2, 3, 4]
>>>
本文地址:https://blog.csdn.net/qq_41092105/article/details/107147845
上一篇: NET npoi 保存文件
下一篇: .NET redis cluster