zoukankan      html  css  js  c++  java
  • 模块 itertools

    itertools模块包含创建有效迭代器的函数, 可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(生成器的函数表达式)联合使用

    1 . chain(iter1 , iter2, ....itern)

      定义: 此函数创建一个新迭代器来将所有的迭代器链接起来, 返回的迭代器从iter1开始生成项,iter1被用完, 然后从iter2生成项, 这一过程持续到itern所有的项被用完.

      代码实例:

    from itertools import chain
    li = [11,22,33]
    li1 = [55,22]
    ret = chain(li,li1)
    for i in ret:
        print(i)                          #结果是  11,22,33,55,22
    

    2 . chain.from_iterable(iterables):

      定义: 一个备用链构造函数, 其中的iterables是一个迭代变量, 生成迭代序列, 此操作的结果和以下生成器代码片段生成的结果相同:

      代码实例:

    from itertools import chain
    test = chain.from_iterable('ABCDE')
    print(test)
    ret = test.__next__()
    print(ret)
    
    print('*'*23)
    def f(iterables):
        for x in iterables:
            for y in x:
                yield y
    test = f('ANCDD')
    ret = test.__next__()
    ret1 = test.__next__()
    print(ret,ret1)
    

        结果:

    <itertools.chain object at 0x000001AFBF508A90>
    A
    ***********************
    A N
    

    3 combinations(iterable, r)

      定义: 创建一个迭代器, 返回iterable中所有长度为r的子序列,返回的子序列中的项按输入的iterable中的顺序排序:

    from itertools import combinations
    test = combinations([1,2,3,4],2)
    print(test)
    for el in test:
        print(el)
    

    4  count([n]):

      定义:创建一个迭代器,生成从n开始的连续整数,如果忽略n,则从零开始计算 

    from itertools import count
    ret = count(4)
    print(ret)
    print(ret.__next__())
    print(ret.__next__())
    

    5 dropwhile(predicate, iterable):

      定义: 创建一个迭代器, 只要函数predicate为ture, 就丢弃iterable中的项,如果返回false.\,就会生成iterable中的项和所有后续项.

    6 filterfalse(predicate, iterable)

      定义: 创建一个迭代器,仅生成iterable中predicate为false的项, 如果predicate为none,将放回iterable中所有计算为false的项

    import itertools
    ret = itertools.filterfalse(lambda x:x%2, range(10))
    for i in ret:
        print(i)
    

      

  • 相关阅读:
    宏 定 义 编 译 出 错
    SSWR 跟 进一法除法
    显示文件后缀扩展名
    基于MPLAB X IDE配置位设置讲解
    mplab xIde 编译成功,但不能生成Hex文件
    InputStream 、 InputStreamReader 、 BufferedReader
    MPLAB® XC C编译器的Workstation License的获取及安装方法
    MPLAB设置路径
    js中的cookie及封装
    nodejs中使用node-sass
  • 原文地址:https://www.cnblogs.com/gyh412724/p/9710024.html
Copyright © 2011-2022 走看看