本文介绍了如何分析python的映射和减少函数。内容很详细,有兴趣的朋友可以参考一下,希望对你有帮助。
边肖谈到了Python的m和ap、reduce函数。
这对兄弟是出现频率极高和相当实用,的python函数,初学者很难理解。看完这篇文章你就能搞定了!
01map
map()方法会将函数的映射发送到序列,的每个元素,并生成一个包含所有函数返回值的新序列。
也就是说,把序列中的每一个元素都当作一个x变量,放入一个函数f(x),结果就是一个由f(x1)、f(x2)、f(x3)等组成的新序列。
如何使用map函数?
映射(函数到应用,输入列表)
Function_to_apply:表示函数。
List_of_inputs:表示输入序列。
注意:python3中的映射函数返回一个迭代器.
大多数时候,我们必须将列表中的所有元素逐个传递给一个函数,并收集输出。
例如:
项目=[1,2,3,4,5]#列表
平方=[]
foriinitems:
平方追加(i**2)
地图功能可以以更简单、更美观的方式实现:
items=[1,2,3,4,5]
squared=list(map(lambda x : x * * 2,items))
上面使用了匿名函数,也可以自定义函数:
items = [1, 2, 3, 4, 5] def f(x): return x**2 squared = list(map(f, items))
02
reduce
reduce相比map稍复杂点
reduce的工作过程是 :在迭代序列的过程中,首先把 前两个元素(只能两个)传给 函数,函数加工后,然后把 得到的结果和第三个元素 作为两个参数传给函数参数, 函数加工后得到的结果又和第四个元素 作为两个参数传给函数参数,依次类推。
reduce函数怎么用?
reduce(function, iterable[, initializer])
-
function:代表函数
-
iterable:序列
-
initializer:初始值(可选)
与map不同,reduce不可以直接使用,需要用from functools import reduce导入
比如说我要求10的阶乘,就可以用reduce做:
# 导入reduce from functools import reduce # 定义函数 def f(x,y): return x*y # 定义序列,含1~10的元素 items = range(1,11) # 使用reduce方法 result = reduce(f,items) print(result)
关于如何分析python的map、reduce函数就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/134040.html