zoukankan      html  css  js  c++  java
  • python函数式编程学习之map,reduce,filter,sorted

    map(f, list)函数用于将函数f运用到list里的每个元素中

    写个例子

    def pow(x):

      return x*x

    map(pow, [2,3,4])

    reduce(f, list)函数用于将函数f运用到list的前两个元素,在将f运用到得到的结果和第三个元素,依次类推

    写个例子

    def add(x, y):

      return x+y

    redude(add, ['a', 'b', 'c', 'd'])

    abcd

    reduce(add, ['a','c','b','d'])

    acbd

    map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

    sorted()方法对list进行排序

    sorted([36, 5, 12, 9, 21])
    [5, 9, 12, 21, 36]

    sorted()函数也是一个高阶函数,它还可以接收一个比较函数来实现自定义的排序

    def reversed_cmp(x, y):
        if x > y:
            return -1
        if x < y:
            return 1
        return 0

    sorted([36, 5, 12, 9, 21], reversed_cmp)
    [36, 21, 12, 9, 5]
    返回函数
    匿名函数lambda
    在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)
    偏函数
    functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2
    >>> import functools
    >>> int2 = functools.partial(int, base=2)
    >>> int2('1000000')
    64
    >>> int2('1010101')
    85
    

    所以,简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

    以上参考自廖雪峰老师的python2.7教程

  • 相关阅读:
    @JSONFORMAT
    在控制台下运行jar文件出现的问题
    Windows 环境下执行 .sql 格式文件方式
    本地项目上传到git的详细步骤
    tomcat 处理请求url带特殊字符
    maven scope详解
    springboot+maven切换成oracle
    tomcat 处理http post请求配置
    mysql远程访问localhost权限
    Tomcat配置 访问jsp/html页面
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/6589882.html
Copyright © 2011-2022 走看看