zoukankan      html  css  js  c++  java
  • python之map,zip,reduce,filter的用法

    1、reduce(func,iterable,initial):

      参数:

        - func 可执行函数

        - iterable 可迭代对象

        - initial 可选,初始参数

      功能描述:调用func函数后,发生迭代,每次迭代,都会将上一次迭代结果和可迭代对象中的下一个元素传入func中执行。initial是可选的,如果给了一个值,则第一个元素用给的值,没给的话就用序列中的第一个值,然后返回函数运行后的结果

      示例:

    from functools import reduce
    content=reduce(lambda x,y:x+y,[i for i in range(101)])
    print(content)
    # 5050

    2、zip([iterable, ...])  

      参数:

        - iterable 一个或多个序列

      功能描述:这个函数可以将传进去的多个列表进行配对,让对应索引上的值放进同一个元组里,再通过list 或tuple强转(这样才可以打印出结果,而不是一个内存地址),将每一个元组放进一个列表或元组里。

      示例:

    a = [1,2,3]
    b = [4,5,6]
    c = [4,5,6,7,8]
    zipped = zip(a,b)     # 打包为元组的列表
    print(list(zipped))
    # [(1, 4), (2, 5), (3, 6)]
    print(list(zip(a,c)))              # 元素个数与最短的列表一致
    # [(1, 4), (2, 5), (3, 6)]

    3、map(func, iterable, ...):

      参数:  

        - func 可执行函数

        - iterable 一个或多个序列

      功能描述:将func作用于每一个iterable中的每一个元素,也需要通过list或 tuple强转,如果func为None,则和zip()一样;

      示例:

    listx = [1,2,3,4,5,6,7]       # 7 个元素
    listy = [20,30,40,50,60,70]         # 6 个元素
    listz = [100,100,100,100]     # 4 个元素
    list_result = map(lambda x,y,z : x + y + z,listx, listy, listz)
    print(list(list_result))
    # [121, 132, 143, 154]

        可以看出,如果有多个序列,会按照最少元素的序列计算结果

    4、filter(func, iterable)

      参数:

        - func 判断函数。

        - iterable 可迭代对象。

      功能描述:

        将序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新迭代器中。

      示例:

    # 过滤出列表中的所有奇数
    def is_odd(n):
        return n % 2 == 1
     
    newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    print(list(newlist))
    # [1, 3, 5, 7, 9]
  • 相关阅读:
    mac下安装oracle客户端
    Mac下安装tomcat
    eclipse上Git使用
    深拷贝1兼容多构造函数
    Oracle查询表大小,更新或查询太慢的时候
    Redis弱密码修改
    学习参考
    c#简单类型转换As<T>
    NPM相关
    java项目和npm项目命令窗口部署方便调试
  • 原文地址:https://www.cnblogs.com/value-code/p/8696582.html
Copyright © 2011-2022 走看看