zoukankan      html  css  js  c++  java
  • Python中针对函数处理的特殊方法

    Python中针对函数处理的特殊方法

    很多语言都提供了对参数或变量进行处理的机制,作为灵活的Python,提供了一些针对函数处理的特殊方法
    filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple
    map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个List
    reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function
    sum(sequence):对集合中的元素进行累加

    下面针对上面的描述写一个简单的小例子:

    代码如下:
    __author__ = 'Administrator'

    from functools import reduce

    #主要用来掩饰map可以将某个序列中的元素传递给某个特殊的函数来处理
    def map_demo():
        #定义一个将字母转换成大写的函数
        def to_upper(ch):
            return str(ch).upper()

        #对给定字符串中的每个字母应用to_upper函数
        print(list(map(to_upper, "asdfasdfuasdlaksdjf".split())))


    #主要使用一个基于布尔值得函数对元素进行过滤
    def filter_demo():
        def is_alnum(ch):
            return ch.isalnum()

        #!se会被过滤掉
        test_list = ['sdas', '123d', '!se', '孙阿斯蒂芬']
        #基于具体函数
        print(list(filter(is_alnum, test_list)))
        #基于列表推导
        print(list(x for x in test_list if x.isalnum()))
        #基于匿名函数
        print(list(filter(lambda x: x.isalnum(), test_list)))


    #reduce的主要功能是利用列表中的两个元素迭代调用某个函数,最后得到一个结果
    #在python3中要显示的添加 from functools import reduce
    #本例中运行的过程大致是先是1 2=3,利用3 4=7,7 4.......
    def reduce_demo():
        print(reduce(lambda x, y: x y, range(1, 10)))


    #利用sum函数累加列表中的值
    def sum_demo():
        print(sum(range(10)))


    if __name__ == "__main__":
        #map_demo()
        #filter_demo()
        #reduce_demo()
        sum_demo()

     

  • 相关阅读:
    poj1862---变形虫(贪心)
    poj1833---字典序算法
    poj1799---解析几何
    poj1665
    poj1663---纯粹找规律
    poj1658
    poj1657---chessboard
    poj1656---数黑格子
    poj1617---columnar encryption
    查找两个文件的相同之处,不同之处
  • 原文地址:https://www.cnblogs.com/amengduo/p/9586404.html
Copyright © 2011-2022 走看看