首页 > 编程语言 > 详细

python函数之内置函数

时间:2021-01-31 23:52:43      阅读:26      评论:0      收藏:0      [点我收藏+]

lambda

这里的lambda是一个内置函数,简易快速定义函数,参数可以为一个或者多个,但返回结果只能为一个对象,可以写成多个”对象”组成的元祖,名义上只能为一个对象.

例如:lambda x,y,x:(x+1,y+2,z*3)

 

1 f = lambda x, y, z: (x + 1, y + 2, z * 3)
2 print(f(1,2,3))

 

打印结果:

(2, 4, 9)

 

map

1 msg = wangdachui
2 print(list(map(lambda x: x.upper(), msg)))

打印结果:

[‘W‘, ‘A‘, ‘N‘, ‘G‘, ‘D‘, ‘A‘, ‘C‘, ‘H‘, ‘U‘, ‘I‘]

解释说明:

这里是map函数和lambda结合使用的例子,即先有lambda定义一个函数,lambda x:x.upper(),将输入传入参数x转换成大写,然后再是次外层map函数,把可迭代对象msg(字符串)中每一个值依次作为参数传给最里层lambda定义的函数,得到一个迭代器,再往外一层,list()函数,将迭代器转换成列表,从而打印出来.

 

filter

 filter是一个依据bull量为依据对可迭代对象进行筛选的内置函数,演示代码如下:

1 # 需求:有一个人名列表,将所有‘zhang‘打头的去掉,只保留其他的,打印出来
2 people_list = [zhangsan, wangwu, zhangsi, zhangqi, liuba]
3 print(list(filter(lambda x: not x.startswith("zhang"), people_list)))
4 
5 # 输出结果:
6 # [‘wangwu‘, ‘liuba‘]

这里可以解释为:在最里层使用lambda定义一个返回值为布尔量的函数判断传入的参数是否以‘zhang‘为开头,但是这里的not表示,要求x不能以"zhang"打头,否则返回False,但是filter函数则筛选出可迭代对象中,能让内层函数返回值为True的元素,

这样就将所有不是以"zhang"开头的人名保留,然后结果list函数和print作用,打印出最终结果,见代码.

 

python函数之内置函数

原文:https://www.cnblogs.com/zehuang/p/14354309.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!