鱼C论坛

 找回密码
 立即注册
查看: 1787|回复: 0

[技术交流] 章节五:函数(lambda表达式)

[复制链接]
发表于 2017-7-17 21:37:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 向西而笑 于 2017-7-22 17:19 编辑
Lambda表达式
Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数。如:
例1:
  1. >>> def ds (x):
  2.                  return 2*x +1

  3. >>> ds(5)
  4. 11
  5. >>> y = lambda x:2*x + 1
  6. >>> y(5)
  7. 11
复制代码


例2:
  1. >>> def ds(x,y):
  2.         return x + y


  3. >>> ds(1,2)
  4. 3
  5. >>> z = lambda x,y :x+y
  6. >>> z(1,2)
  7. 3
复制代码




Lambda表达式的作用
1、        Python写一些执行代码时,使用lambda表达式就可以省下定义函数过程,比如说我们只是要写个简单的代码来管理服务器时间,我们就不需要专门定义一个函数然后写调用,使用lambda使得代码更加精简
2、        对于一些比较抽象只调用一两次的函数,省去取名字的麻烦
3、        简化代码的可读性,阅读普通函数要去看def开头,使用lambda可以省去这样的步骤。


filter()函数:
        这个函数起到一个过滤器的作用,用于过滤序列,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
例子:
  1. #在10以内筛选出奇数
  2. def  odd(x):
  3.         return x%2


  4. >>> list(filter(odd,range(11))) #range生成0-10的数字,不包含11
  5. [1, 3, 5, 7, 9]
复制代码


学了lambda可以写成这样:
  1. >>>list(filter(lambda x: x%2,range(11)))
  2. [1, 3, 5, 7, 9]
复制代码




map()函数:
映射功能,map(func, *iterables) ,传入一个函数和可迭代对象(可多个),将这个函数作用在可迭代对象中的每个元素上返回一个list(不改变原序列)
  1. list(map(lambda x : x *2,range(10)))
  2. [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
复制代码




评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 03:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表