Python第二十一课:lambda表达式,filter、map内置函数

李金龙
李金龙
管理员
496
文章
0
粉丝
Python学习1 4,947字数 474阅读模式

lambda表达式

lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x*x为函数体

  1. def df(x):
  2.     return x*x
  3. print(df(100)) #10000
  4. g = lambda x:x*x+
  5. print(g(100)) #10000

lambda支持多个参数

  1. def dy(x,y,z):
  2.     return x+y+z
  3.  dy(7,8,9)  # 24
  4. f = lambda x,y,z:x+y+z
  5.  f(7,8,9) #24

lambda作用

1、Python写执行脚本时,使用lambda可以省下定义函数过程。

2、对于抽象以及少用的函数,减少函数命名的问题。

3、简化代码的可读性

filter() 过滤器

filter有两个参数,第一个可以是函数或空值,第二个可迭代序列

当第一个参数为None时,返回非False的结果

  1. a=filter(None,[0,1,2,3,False,'False'])
  2. print(list(a)) #[1, 2, 3, 'False']

当第一个参数为函数时,返回函数筛选后的值

  1. def df(x):
  2.     return x %2
  3. b = range(10)
  4. z = filter(df,b)
  5. print(list(z)) #[1, 3, 5, 7, 9]

使用lambda表达式来写

  1. e = filter(lambda x:x%2,range(10))
  2. print(list(e))

map()阴射

在使用这个代码之前,一直在试验fifter,使用+-*/,后面一下子明白了,这玩意是产生条件才返回结果,而不是去运算。

map()有两个参数,第一个是函数,第二个可迭代序列

  1. def df(x):
  2.     return x *2
  3. b =range(10)
  4. z = map(df,b)
  5. print(list(z)) #[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
  1. z =print(list(map(lambda x:x*2,range(10)))) #[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

 


单词扩展:

  • filter : 渗入、过滤
  • map:映射,通常我们都理解为地图了

扩展阅读:


版权注释:

Python课程来源于鱼C论坛:http://bbs.fishc.com/forum-243-1.html 版块,课程内容为免费内容,如果你喜欢该课程,建议购买VIP账号支持小甲鱼,官方网店:https://fishc.taobao.com/)。

本内容为在李金龙在学习课程中做的日记记录,方便自己以后查找相关信息,另一方面也希望自己写下的东西可以帮助到别人。

课程内容:http://blog.fishc.com/3118.html

 
李金龙
  • 本文由 李金龙 发表于2017年4月25日 12:45:56
  • 转载请务必保留本文链接:https://www.lijinlong.cc/python/pyxx/1833.html
Python学习

Python3第二十八课:文件的使用

Python3文件处理: 其实一直想搞一个小工具来处理信息预埋后,产品的数据返回,比方说我发了100个帖子,他们有多少被删除了,有多少的浏览量,有多少被搜索引擎收录了,有多少用户回复,回复的重点是什么...
    • ooxx7788
      ooxx7788 0

      print(list(map(lambda x :x**2 + x*2 + 1,[x for x in range(100)])))
      支持李总!

    匿名

    发表评论

    匿名网友
    确定

    拖动滑块以完成验证