zoukankan      html  css  js  c++  java
  • Python 内置的一些高效率函数用法

    1.  filter(function,sequence)

      将sequence中的每个元素,依次传进function函数(可以自定义,返回的结果是True或者False)筛选,返回符合条件的元素,重组成一个String,List,Tuple等(跟sequence一样)

      示例

    def func(x):
        return x%2==0 and x%3==0
    
    filter(func,(3,6,8,12,15,21))
    
    #(6, 12)

    2. map(functiom,sequence)

      将sequence中的每个元素,依次传进function函数(可以自定义,返回的结果是数值)计算,无论sequence是什么类型,都返回List

      示例

    def func(x):
        return x*2
    
    map(func,(3,6,8,12,15,21))
    
    #[6, 12, 16, 24, 30, 42]

      map支持多个sequence输入,但是function也要有相同数量的参数

    def func(x,y):
        return x+y
    
    seq1=[3,6,4,8]
    seq2=[6,4,3,7]
    
    map(func,seq1,seq2)
    
    #[9, 10, 7, 15]

      注意:以上示例是在python2.7中的,python3要用如下用法

    >>> map_obj = map(lambda x:x+1,[1,2,3,4])
    >>> map_obj
    <map object at 0x0000014C511BD898>
    >>> list(map_obj)
    [2, 3, 4, 5]

    3. reduce(function, sequence, starting_value)

      将sequence中的item顺序迭代调用function,例如可以用来对List求和:

    def add(x,y):
        return x+y
    
    reduce(add,[3,6,4,8])
    
    #21
    #相当于运行‘3+6+4+8’=21

      如果有starting_value,还可以作为初始值调用

    def subtract(x,y):
        return x-y
    
    reduce(subtract,[3,6,4],20)
    
    #7
    #相当于'20-3-6-4'=7

    4. lambda匿名函数

      语法:lambda 参数1,参数2(,参数n..):表达式     返回的是一个函数对象

      示例

    func=lambda x,y:x+y
    func(3,5)
    
    #8

      将lambda和reduce结合

    reduce(lambda x,y:x+y,[3,6,4,8])
    
    #21
  • 相关阅读:
    c++ list_iterator demo
    模板元编程例子
    !a && !b 和 !(a || b) 的故事
    简明解释算法中的大O符号
    重构oceanbase的一个函数
    正则表达式识别汉字
    编写易于理解代码的六种方式
    Linux下的tar压缩解压缩命令详解
    2013 年 —— Facebook 在开源方面的工作介绍
    Kent Beck揭秘Facebook开发部署流程
  • 原文地址:https://www.cnblogs.com/wongbingming/p/6816544.html
Copyright © 2011-2022 走看看