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

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

李金龙

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar ooxx7788 0

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