欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

网易《python全栈工程师》 1.4.3 特殊函数

程序员文章站 2022-11-30 14:26:18
目录1. 课程目标2. lambda2.1 基本形式二级目录三级目录1. 课程目标2. lambda2.1 基本形式二级目录三级目录...

1. 课程目标

网易《python全栈工程师》 1.4.3 特殊函数

2. lambda

2.1 基本形式

网易《python全栈工程师》 1.4.3 特殊函数
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 基本形式

网易《python全栈工程师》 1.4.3 特殊函数
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代表不过滤,一次只能过滤一个参数
网易《python全栈工程师》 1.4.3 特殊函数
示例一,过滤出大于零的数字

>>> 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