今天就跟大家聊聊有关Python中有哪些模板函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
在函数式编程里面, 我们可以定义匿名函数,也可以把函数赋值给一个变量或作为参数传递给另外一个函数,Python语言很早就支持函数式编程,我们可以用lambda关键字定义一个匿名函数,然后赋值给一个变量,如下所示:
from string import strip,upper #functions: # def map_add(x): return x+3 # if __name__=='__map_add__': map_add(x) #zip file def zip_file(): #open file f = open('map.txt') lines = f.readlines() print lines f.close() # print 'BEFORE\n' for eachline in lines: print '[%s]' % eachline[:-1] # print 'AFTER\n' for eachline in map(upper, map(strip, lines)): print '[%s]' % eachline # if __name__=='__zip_file__': zip_file()
lambda定义的匿名函数可以引用外围函数的变量,上面的代码中,第二个lambda表达式定义的匿名函数引用了***个匿名函数的参数n,因为***个匿名函数是第二个匿名函数的外围函数。
除了lambda表达式之外,Python模板函数还支持将函数作为参数传递给另外一个函数,有点类似于C语言中的函数指针,Python语言内建的函数filter,map,reduce就可以接受函数参数。
filter(function, sequence)会遍历sequence中的每一个item,并以该item为参数调用function,如果function返回ture,就将该item加到结果sequence中,这就达到过滤sequence的效果,作为参数的function就是过滤的条件,例子如下:
>>>reduce(lambda x,y:x*y, [1,2,3,4,5]#((((1*2)*3)*4)*5 >>>120 >>>reduce(lambda x,y:x*y, [1,2,3], 10) >>>60 #((1*2)*3)*10
这里用lambda定义的匿名函数来定义过滤条件,在list a中返回是偶数的items,下面这个模块以一个现有的文本为参数,清除多余空格,再把所有文字都转换为大写(英文)。为子演示程序要创建一个map.txt该文件中有几行前后有多余空格的字符串。
看完上述内容,你们对Python中有哪些模板函数有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。