python函数式编程中几个常用的函数map、filter、reduce、zip简介
python函数式编程
一、函数式编程
1、什么是函数式编程?
函数式编程是将编程过程看做数学函数的计算过程,也就是使用表达式编程,函数的返回值只依赖于传入的函数的参数。
2、函数式编程的优点:
1》代码更简洁
2》没有循环体,很少出现临时变量的情况
3》数据、操作、返回值都放在表达式中
二、map函数
1、map函数用于将指定序列中的所有元素作为参数调用指定函数,并将结果构成一个新的序列返回。语法如下:
结果序列 = map(映射函数,序列1,序列2…)
map中序列的个数,取决于映射函数的参数数量
2、小栗子
arr = map(lambda x: x**2, [2,4,6,8,10])
for e in enumerate(arr):
print (e)
print('-----------------------')
arr = map(lambda x,y: x+y, [1,3,5,7,9],[2,4,6,8,10])
for e in enumerate(arr):
print(e)
运行结果:
三、filter函数
1、filter函数可以对指定的序列执行过滤操作。语法如下:
filter(函数function,序列sequence)
函数function接受一个参数,返回布尔值True或False,序列sequence可以是列表、元组或者字符串。
2、小栗子
def is_even(x):
return x % 2 == 0
arr = filter(is_even,[1,2,3,4,5,6,7,8,9,10])
for e in enumerate(arr):
print (e)
运行结果:
四、reduce函数
1、reduce函数用于将指定序列中的所有元素作为参数按一定规则调用指定的函数。语法如下:
结果 = reduce(映射函数,序列)
reduce函数的参数至少有2个参数才行,它是首先以序列中的前两个元素作为调用参数得到结果,然后再于第三个得到结果,直到操作完序列中的所有元素后,返回最终的结果。
2、小栗子
from functools import reduce
def myadd(x,y):
return x+y
sum = reduce(myadd,(2,4,6,8,10))
print (sum)
运行结果:
五、zip函数
1、zip函数是以一系列的列表作为参数,将所有列表中对应的元素打包成一个个元组,然后返回这些元组组成的列表。
2、小栗子
a = [1,2,3,4]
b = [5,6,7,8]
zipped = zip(a,b)
for elem in zipped:
print (elem)
print('-------------\n')
a = [1,2,3,4]
b = [4,5,6,7,8]
zipped = zip(a,b)
for elem in zipped:
print (elem)
print('\n-----unzip------')
a = [1,2,3]
b = [4,5,6]
zipped = zip(a,b)
unzipped = zip(*zipped)
for elem in unzipped:
print (elem)
运行结果:
enumerate() 函数使用说明:用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
说明:如有错误,欢迎指正。。。
本文为博主原创文章,未经博主允许请勿转载!作者:ISmileLi