鱼C论坛

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

[技术交流] python学习笔记之lambda表达式

[复制链接]
发表于 2017-7-28 09:36:58 | 显示全部楼层 |阅读模式

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

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

x
lambda表达式
>>> def ds(x):
   return 2 * x + 1

>>> ds(5)
11
>>> g = lambda x : 2 * x + 1
>>> g(5)
11
  • lambda表达式,分号前的x表示是参数,分号后是表达式
  • lambda表达式的作用
    • 写一些执行代码时,使用lambda表达式可以省下定义函数的过程
    • 使用次数很少的函数,不用刻意想函数名字
    • 简化代码的可读性
  • 有默认参数的函数,也可以携程lambda表达式
      def fun_A(x, y=3):
          return x * y
    可以写成
      g = lambda x , y = 3 : x * y
  • 两个BIF介绍
    • filter()过滤器
        >>> a = [0 , 1 , 2 , True , False]
        >>> list(filter(None , a))
        [1, 2, True]
      • filter()过滤器有两个参数filter(function or None , iterable),第一个参数可以是函数(用来过滤)或者是None,第二个参数为一个可迭代对象,即过滤的对象
          >>> temp = range(10)
          >>> def odd(x):
                 return x % 2
        
          >>> list(filter(odd , temp))
          [1, 3, 5, 7, 9]
      • 函数odd判断是否是奇数,filter第二个参数temp是一个列表,列表参数依次传入函数odd中进行判断后进行过滤
          >>> list(filter(lambda x : x % 2 , temp))
          [1, 3, 5, 7, 9]
      • 上示为lambda表达式和filter过滤器的结合使用
    • map()映射
        >>> list(map(lambda x : x * 2 , range(10)))
        [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
      • map()同样有两个参数,第一个参数是一个函数/表达式,其将第二个参数传入的数值按照函数/表达式处理后,返回处理后的数值



评分

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

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 17:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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