前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python中lambda(),filter(),map()函数

Python中lambda(),filter(),map()函数

原创
作者头像
用户7886150
修改于 2021-01-12 06:29:42
修改于 2021-01-12 06:29:42
1.1K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Python lambda (匿名函数) | filter, map, reduce

1. lambda()匿名函数 

a = lambda x: x*x

print a(2)

输出结果为:

关键字 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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档