zoukankan      html  css  js  c++  java
  • Python之内建函数Map,Filter和Reduce

    Python进阶


    map,filter, reduce是python常用的built-in function。 且常与lambda表达式一起用。
    其中:

    map###

    形式:map(function_to_apply, list_of_inputs) -> list
    作用:map的作用是将一个序列的元素(通常是list),作为function的参数传入,返回list结构的结果.
    用处:当我们想要将一个list的items 一个个按顺序传入一个function中,得到顺序的结果。可以考虑使用map。

    demo1

    一般的写法:

    items = [1, 2, 3, 4, 5]
    squared = []
    for i in items:
        squared.append(i**2)
    

    demo2:

    使用map的简洁写法:

    def squarefun(x):
        return x**2
    items=[1,2,3,4,5]
    squared = list(map(squarefun,items))
    

    demo3:

    使用lambda和map的最简洁写法:
    因为lambda就可以表达一个function。

    items = [1, 2, 3, 4, 5]
    squared = list(map(lambda x: x**2, items))
    

    result:

    [1,4,9,16,25]
    

    以上三个demo的作用是完全一样的,但是无疑demo3是最简洁的。

    reduce###

    形式:reduce(function, sequence) -> value
    作用:reduce的作用是将sequence的元素(通常是list),一个接一个的作为参数的传入function(只能是两个参数的运算)中进行运算,上一个结果作为下一次运算的一个参数,另一个参数从sequence返回一个最终的结果。

    demo4:

    result = reduce((lambda x, y: x + y), [1, 2, 3, 4, 5])
    
    #等同于
    result2 = ((((1+2)+3)+4)+5)
    
    # Output: 15
    

    filter###

    形式:filter(function or None,sequence) -> list,tuple or string
    作用:返回那些sequence中的那些item,使得function(item)为真。如果function为None,则直接返回为真的item,返回类型和sequence的类型一致。

    number_list = range(-5, 5)
    less_than_zero = list(filter(lambda x: x < 0, number_list))
    
    # Output: [-5, -4, -3, -2, -1]
    

    filter###


  • 相关阅读:
    PHP 之ZIP压缩与解压缩文件
    xmind8 破解激活教程
    MIT 6.824 RPC 和多线程
    [AGC019E]Shuffle and Swap
    [CF1060F] Shrinking Tree
    【算法与数据结构】前序中序后序线索化二叉树及遍历
    绘画参考 多角度透视手的动作姿态线稿
    数学概率期望总结
    C#中方法、类等的默认访问修饰符~
    mysql 设置连接超时
  • 原文地址:https://www.cnblogs.com/bradleon/p/6109954.html
Copyright © 2011-2022 走看看