Flask接口签名sign原理与实例代码浅析
304
2022-09-04
Python----map,filter,reduce,zip,lambda的使用方法(map reduce filter python)
map,filter,reduce,zip都是处理序列的便捷的内置函数
1 map(func,iterable)
map的作用主要是将一个函数应用于一个可迭代的序列,然后将返回值返回
a=[1,2,3,4,5,6]def func(x): return x*xb=map(func,a)print(list(b))
运行结果为:
[1, 4, 9, 16, 25, 36]
2 filter(func,iterable)
filter的功能是通过func来对可迭代的序列进行过滤,如果func的返回值为真,则对应的iterable中的值保留下来,最后一起以序列的形式返回
a=[1,2,3,4,5,6]def func(x): return x%2==0b=filter(func,a)print(list(b))
执行结果如下所示:
[2, 4, 6]
3 reduce(func,iterable)
reduce 的功能是股东计算应用于可迭代序列iterable的结果,最后将结果返回,非常适合应用类似累加和累乘的场景
from functools import reducea=[1,2,3,4,5,6]def add(x,y): return x+ydef multi(x,y): return x*yb=reduce(add,a)c=reduce(multi,a)print(b)print(c)
执行结果如下:
21720
4 zip(*iterable)
zip的功能是映射多个容器的相似索引,可以方便用于来构造字典
a=[1,2,3,4,5]b=["a","b","c","d","e"]c=dict(zip(b,a))print(c)
执行结果为:
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
灵活地应用这几个内置函数,有时候可以是代码更加简洁
5 匿名函数
lambda 表达式其实就是匿名函数,在很多比如定义一个函数,函数的功能比较简单同时又只会用一次,这时候如果像普通定义函数那样定义,总会有种不划算的感觉,这时候匿名函数的作用就来了,通过使用lambda表示定义个匿名函数,即达到了函数的功能,同时又没有定义函数
为了更好的理解匿名函数,下面先通过一个普通的函数定义来看一下
def add(a,b): return (a+b)temp=add(100,200)print(temp)
显然,执行结果为300,下面采用lambda表达式来达到同样的效果
f=lambda x,y:x+yprint(f(100,200))
结果同上面定义函数的方式是一样的,lambda表达式其实也挺简单的,冒号前面的就可以理解为参数的形参,冒号后面就可以理解函数的返回值
6 lambda表达式通常和map,filter,zip,reduce等结合起来一起用非常方便
下面看个例子
a=[1,2,3,4,5,6]print(list(map(lambda x:x*x,a)))
执行结果为:
[1, 4, 9, 16, 25, 36]
代码非常的简洁
在一些开源库中,lambda表达式也经常被使用,所以这里专门把lambda表达式拿出来讲解一下
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~