本篇内容介绍了“python内置函数语法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一 前言
在编写Python 程序或者工具脚本时,需要完成某个功能,可以选择编写一个具体的函数达到目的,当然也可以通过匿名/Python 内建函数来完成。本问讲述常见的Python匿名、内建函数—lambda,map,filter,reduce .
二 例子
2.1 Lambda 是一个匿名函数,
其语法为:lambda parameters:express
parameters:可选,通常是逗号分隔的变量表达式形式,即位置参数。
expression:不能包含分支或循环(但允许条件表达式),也不能包含return(或yield)函数。如果为元组,则应用圆括号将其包含起来。
调用lambda函数,返回的结果是对表达式计算产生的结果。
根据参数是否为2的倍数 返回yes or no
In [21]: s = lambda x:”yes” if x%2 == 0 else “no”
In [22]: s(3)
Out[22]: ‘no’
In [24]: s(4)
Out[24]: ‘yes’上面例子中,将if…else语句缩减为单一的条件表达式,语法为:
expression1 if A else expression2如果A为True,条件表达式的结果为expression1,否则为expression2 。
使用匿名函数的优点是代码简洁 ,但是不宜读 ,推荐 for ..in …if 语法进行遍历迭代。
2.2 filter 过滤
其语法为 filter(function, sequence)
意义是:对sequence中的item 依次迭代调用function(item),根据执行结果为True或者False来保留或者丢弃该元素。并将保留的item组成一个List/String/Tuple(取决于sequence的类型)
filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
In [15]: filter(lambda x:True if x % 3 == 0 else False, range(10))
Out[15]: [0, 3, 6, 9] #返回list
In [17]: filter(lambda x:True if x % 3 == 0 else False, (1,2,3,5,6,7,8,9,10))
Out[17]: (3, 6, 9) #返回Tuple 元组 2.3 map 映射
其语法为map(function, sequence):
map()的用法和filter()类似,也是将序列放入函数进行运算,但是,不论运算结果为什么,map()将返回结果也即返回的结果元素个数和sequence一样多,filter是返回符合条件的值。这是map()和filter()的主要区别。请注意,filter()和map()中的function都必要有一个返回值。同样获取能否被3整除的值,map 返回的是True/False 列表,filter返回的是符合条件的元素结果集。
In [18]: list(map(lambda x:True if x % 3 == 0 else False, range(10)))
Out[18]: [True, False, False, True, False, False, True, False, False, True]2.4 reduce
其语法为 reduce(function, sequence, starting_value)
意义是:对sequence中的item 依次调用function。reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
如果有starting_value,还可以作为初始值调用,比如1-100的list求和:
In [11]: def add(x,y):
…: return x + y
…:
In [12]: reduce(add, range(1, 100))
Out[12]: 4950
In [13]: reduce(add, range(1, 10))
Out[13]: 45
# 带上 starting_value 参数,相当于 1+2+3+4+5+6+7+8++9+10+20
In [14]: reduce(add, range(1, 10),20)
Out[14]: 65 “python内置函数语法介绍”的内容就介绍到这里了,感谢大家的阅免费云主机域名读。如果想了解更多行业相关的知识可以关注云编程开发博客网站,小编将为大家输出更多高质量的实用文章!
相关推荐: 赛门铁克 Symantec Backup Exec 2010
目录如下:文档是pdf格式的、就不转换成word格式的了、下面是下载的链接:http:/免费云主机域名/down.51cto.com/data/2225612 相关推荐: linux中的文件编码如何转换本篇内容主要讲解“linux中的文件编码如何转换”,感兴趣…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。