# 内容摘要

  • lambda 函数
  • lambda 函数用法
  • lambda 函数

    最开始接触 lambda 函数时,觉得它好神奇,简单一行代码可以完成平时多行代码才能实现的函数功能。

    例如:

    1
    2
    func = lambda x,y: x+y
    func(1,2)

    执行结果为:

    1
    3

    那 lambda 函数究竟是什么呢?lambda 函数是匿名函数,即无需定义函数名,在一行中定义函数

    • lambda 表达式

      1
      lambda arg1, arg2, ...: expression

      我们按照正常的函数定义来看这个表达式,函数可以有 0 个或多个参数,因此 arg 是可选项。函数语句即为 expressionexpression 的执行结果即为返回值, expression 定义为 None 即代表没有返回值

  • lambda 函数用法

    • 赋值语句,定义函数

      1
      2
      3
      4
      func = lambda x,y: x*y
      func(2,2)
      # output
      4
    • 函数覆盖,替换已有函数

      1
      2
      3
      4
      time.clock = lambda:'again'
      time.clock()
      # output
      'again'
    • 作为其他函数的参数

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      # sorted 
      # 常用的字典按value排序
      _dict = {'a':3, 'b':1, 'c':2}
      sorted(_dict.items(), key = lambda item: item[1])
      # output
      [('b', 1), ('c', 2), ('a', 3)]

      _lst = [1,2,3]
      # filter 过滤特定条件的元素
      list(filter(lambda x: x <= 2, _lst))
      # output
      [1, 2]

      # map 针对列表中每一个元素的操作
      list(map(lambda x:x**2, _lst))
      # output
      [1, 4, 9]

      # reduce 列表中相邻元素的两两结合条件
      from functools import reduce
      reduce(lambda x, y: x+y, _lst)
      # output
      6
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

chaihj15 微信支付

微信支付

chaihj15 支付宝

支付宝