当前位置: 移动技术网 > IT编程>脚本编程>Python > 网易《python全栈工程师》 1.4.3 特殊函数

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

2020年07月07日  | 移动技术网IT编程  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网