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
  • 相关阅读:
    iOS SQLite函数总结
    转-NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
    NSUserDefaults保存用户名和密码
    iOS 集成银联支付(绕过文档的坑,快速集成)-转
    iOS微信支付
    iOS生成PDF的关键代码-备忘
    python中的urlencode和urldecode
    python中%r和%s的区别
    ubuntu16.04安装wps
    二进制、八进制、十进制、十六进制之间的转换
  • 原文地址:https://www.cnblogs.com/wongbingming/p/6816544.html
Copyright © 2011-2022 走看看