python 中 lambda, map, reduce 函数的简单使用

声明: python学习中, 错误之处敬请谅解

python中有一些有趣的函数, 在这里只是做一些简单的记录,免得遗忘

lambda

  • lambad 是匿名函数, 语法结构为: lambda 参数(用逗号分隔):返回值 eg: lambda x,y : x+y
  • 下面通过一个例子来实现一个最简单的函数
      func = lambda x:x+10
      print(func(10))   # 20
      #等价于
      def func(x):
          return x+10
      print(func(10))   # 20
    

map

  • map的语法结构: map(函数,列表)
  • 列表中的每个元素都会执行函数的,执行完成后返回一个新的列表
  • 说明: 入参函数的参数个数必须为1, 只能且必须有一个参数
  • 简单示例
    lt = [1,2,3,4,5,6,7,8]
    def testMap(x):
      return x+10
    print(map(testMap,lt)) # [11,12,13,14,15,16,17,18]
    
    add = lambda y: y+10
    print(map(add,lt))   # [11,12,13,14,15,16,17,18]
    
    

reduce

  • reduce语法结构: reduce(函数, 列表, 初始值(可选参数))
  • 如果没有设置初始值时, 会把列表的第一个值和第二个值传递个函数, 再把函数返回的值和列表的第三个值作为参数传递函数, 依次进行, 最终返回一个值
  • 如果设置有初始值, 则会把列表的初始值和第一个值传递个函数, 再把函数返回的值和列表的第二个值作为参数传递函数, 依次进行, 最终返回一个值
  • 说明: 入参函数的参数个数必须为2, 当列表只有一个元素, 函数不会执行, 直接返回迭代器的首元素
  • 简单示例
    templt = [1,2,3,4,5,6]
    def add(x,y):
      return x + y
    print(reduce(add,templt))     # 21
    print(reduce(add,templt,10))  # 31
    
posted @ 2019-02-23 21:05  coder0122  阅读(187)  评论(0编辑  收藏  举报