函数式编程

lambda

python中,lambda函数也叫匿名函数,及即没有具体名称的函数
它允许快速定义单行函数,类似于C语言的宏,可以用在任何需要函
数的地方。这区别于def定义的函数。

1
2
lambda x : x*x
lambda x, y : x * x + y
  • lambda在运行一些小型的简单的函数时比较适用

map

map会把可迭代对象的每个元素e拿出来function(e),并存入结果作为返回

  • 公式
    1
    map(function, iterable)
  • 使用
    1
    2
    print(list(map(lambda x:x*x, [1, 2, 3, 4, 5])))
    [1, 4, 9, 16, 25]

reduce

reduce函数将一个可迭代的对象转变成一个元素。最终获得一个数字

  • 公式
    1
    reduce(function, iterable)
  • 使用
    1
    2
    3
    from functiontools import reduce
    print(reduce(lambda x, y : x * y, [1, 2, 3, 4, 5]))
    120

filter

filter函数传入一个迭代对象作为参数并将
这个迭代对象当中所有那些你不要的东西滤去。

  • 公式

    1
    reduce(function, iterable)
  • 使用

    1
    2
    3
    4
    print(list(filter(lambda x:x%2==0, [1, 2, 3, 4, 5])))
    [2, 4]
    print(list(filter(lambda x:x<0, [1, 2, 3, 4, 5, -1, -5]))
    [-1, -5]
分享到