参考链接: Python lambda (匿名函数) | filter, map, reduce
1. lambda()匿名函数
a = lambda x: x*x
print a(2)
输出结果为:
4
关键字 lambda 表示匿名函数,冒号前面的 x 表示函数参数 匿名函数有个限制,只能有一个表达式,不用写 return,返回值就是该表达式的结果。 也可以把匿名函数赋值给一个返回值:
def fun(x,y):
return lambda:x*y
使用lambda()函数可以简化代码,如果使用def定义函数,每次调用的时候还需要回头找到该函数,如果这个函数程序运行中仅用到一两次,使用lambda()代替的话可以大大简化程序。
2. filter()函数
以下是Python中对filter()函数的介绍:
filter(...)
filter(function or None, sequence) -> list, tuple, or string
Return those items of sequence for which function(item) is true. If
function is None, return the items that are true. If sequence is a tuple
or string, return the same type, else return a list.
filter()函数的参数为一个函数和一个序列,把传入的函数依次作用于每个元素,然后根据返回值是True还是False判断是保留还是丢弃该元素。filter()函数返回的是一个迭代器Iterator。举个例子:
删掉一个 list 中的偶数,只保留奇数,可以写为:
def is_odd(n):
return n % 2 == 1
list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
#输出结果为:
[1,3,5,9]
利用 lambda 表达式,也可以写成:
list(filter(lambda x:n%2==1, [1, 2, 4, 5, 6, 9, 10, 15])))
3. map()函数
map(函数名, Iterable),map()函数将传入的函数依次作用到序列的每个元素,并把结果作为新的iterator返回。 例:有一个函数
f(x)=x2
f(x)=x^2,要把该函数作用在一个list=[1,2,3,4,5,6,7,8]上,可用map()函数实现如下:
def fun(x):
return x*x
list(map(fun,[1,2,3,4,5,6,7,8]))
#输出结果为:
[1, 4, 9, 16, 25, 36, 49, 64]
使用lambda()函数实现如下:
list(map(lambda x: x*x,[1,2,3,4,5,6,7,8]))
利用map()函数将[‘lily’,’JACK’,’mAriN’]这三个名字规范化输出,即除了首字母大写,其他均小写。
def normalize(name):
return name[0].upper+name[1:].lower
Name = ['lily','JACK','mAriN']
print (list(map(normalize,Name)))
#输出结果为:
['Lily','Jack','Marin']
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有