zoukankan      html  css  js  c++  java
  • Python中函数式使用

    对于链表来讲,有三个内置函数非常有用: filter()map() 以及 reduce()

    filter(function, sequence) 返回一个 sequence(序列),包括了给定序列中所有调用 function(item) 后返回值为 true 的元素(如果可能的话,会返回相同的类型)。如果该 序列 (sequence)是一个 str,unicode 或者 tuple,返回值必定是同一类型,否则,它总是 list。例如,以下程序可以计算一个被 3 和 5 整除的序列:

    def f(x):
        return x % 3 == 0 and x % 5 == 0
    
    print filter(f,range(2,100))

    [15, 30, 45, 60, 75, 90]

    map(function, sequence) 为每一个元素依次调用 function(item) 并将返回值组成一个链表返回。例如,以下程序输出列表中的元素3次:

    def word(x):
        return x*3
    
    words = ['1','2','3','4','5','6']
    print map(word,words)
    ['111', '222', '333', '444', '555', '666']

    可以传入多个序列,函数也必须要有对应数量的参数,执行时会依次用各序列上对应的元素来调用函数(如果某些序列比其它的短,就用 None 来代替)。如果把 None 做为一个函数传入,则直接返回参数做为替代。例如:

    seq1 = range(8)
    seq2 = range(9,17)
    
    def add(x,y):
        return x+y
    
    print map(add,seq1,seq2)
    
    [9, 11, 13, 15, 17, 19, 21, 23]

    reduce(function, sequence) 返回一个单值,它是这样构造的:首先以序列的前两个元素调用函数function,再以返回值和第三个参数调用,依次执行下去。例如,以下程序计算 1 到 10 的整数之和:

    def add(x,y):
        return x+y
    
    print reduce(add,range(1,11))

    55
  • 相关阅读:
    虚拟化之基础---虚拟化的的基本了解
    DFS文件服务器实验手册
    CentOS 7下配置ISO镜像文件为本地yum源
    CentOS7中搭建redis集群
    CentOS7中搭建redis单机
    CentOS7搭建zookeeper伪集群
    zookeeper单机安装
    搭建局域网http的yum源
    openstack-学习2-云计算与云计算技术
    openstack-学习1-openstack入门
  • 原文地址:https://www.cnblogs.com/Liqiongyu/p/5006980.html
Copyright © 2011-2022 走看看