zoukankan      html  css  js  c++  java
  • Python---高级函数map, filter, zip, enumerate等的用法

    今天看自然语言处理这本书的时候,被这里的高级函数的概念吸引了,因为我觉得所有的函数都只是函数而已,是为了实现特定功能而实现的,不应该有高级,低级之分啊!不过了解之后,发现这几个函数确实是有点高级,非常好用,所以在这里做一个简单的总结。

    1. Haskell:之前以为它是一个函数,其实它是一个统称。Haskell 中的函数可以作为参数和回传值传来传去,这样的函数就被称作高阶函数。

    2. map(function, list): 就是对list 中的每一个元素都调用function函数进行处理,返回一个新的列表

    1 >>> d=[1,2,3]
    2 >>> def f(s):
    3 ...     return s*100
    4 ...
    5 >>> map(f,d)
    6 [100, 200, 300]

    3. filter(function, list): 对list中的每一个元素都调用function进行判断,返回满足条件的元素列表。感觉它跟map很像,是的,但也有细微的差别,看下面代码就知道了。

     1 >>> filter(lambda x: x>2, d)
     2 [3]
     3 >>> filter(f, d)
     4 [1, 2, 3]
     5 >>> map(lambda x: x>2, d)
     6 [False, False, True]
     7 >>> def f1(s):
     8 ...     s=s*120
     9 ...
    10 >>> map(f1, d)
    11 [None, None, None]

    4. zip([iterable, ...])

    zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)

    1 >>> a = [1,2,3]
    2 >>> b = [4,5,6]
    3 >>> c = [4,5,6,7,8]
    4 >>> zipped = zip(a,b)
    5 [(1, 4), (2, 5), (3, 6)]
    6 >>> zip(a,c)
    7 [(1, 4), (2, 5), (3, 6)]
    8 >>> zip(*zipped)
    9 [(1, 2, 3), (4, 5, 6)]

    5. enumerate(s):返回一个包含索引及索引处所在项目的配对。

    1 >>> enumerate(d)
    2 <enumerate object at 0x02873B98>
    3 >>> list(enumerate(d))
    4 [(0, 1), (1, 2), (2, 3)]
  • 相关阅读:
    js 函数 常用事件 document事件 window对象
    Java API Object
    Java 匿名对象 内部类 包的声明与访问 访问修饰符
    Java关键字 this super final static
    Java 多态 构造方法
    Java 抽象类 接口
    Java Server Pages----JSP
    JAVA Web -----Servlet简介
    JAVA web 会话技术Cookie&Session
    JAVA中常用的API -----(一)Object、String类
  • 原文地址:https://www.cnblogs.com/no-tears-girl/p/7100549.html
Copyright © 2011-2022 走看看