zoukankan      html  css  js  c++  java
  • itertools

     1 # -*- encoding:utf-8 -*-
     2 import itertools
     3 
     4 
     5 def main():
     6     # chain
     7     print(list(itertools.chain([1,2,3], (3,4,5))))
     8     # count(start=0, step=1)
     9     for item in itertools.count(2, 2):
    10         print item
    11         if item == 10:
    12             break
    13     # ifilter(contintion,data)
    14     print(list(itertools.ifilter(lambda x : x%2, [1,2,3,4,5,6,7,8,9])))
    15     # filterfalse(contintion,data)
    16     print(list(itertools.ifilterfalse(None,[1,2,0,1,0,3])))
    17     print(list(itertools.ifilterfalse(lambda x : x%2, [1,2,3,4,5,6,7,8,9])))
    18     print(list(itertools.ifilterfalse(lambda x : x < 20, (20, 30, 22, 40, 19, 1))))
    19     # compress()
    20     print(list(itertools.compress([1,0,1], ["a","b","c"])))
    21     # starmap(func, [])
    22     print(list(itertools.starmap(max,[[1,2,3],[2,3,4],[3,6,9]])))
    23     # repeat(object[, times])
    24     print(list(itertools.repeat("repeat", 5)))
    25     # dropwhile(func, seq );当函数f执行返回假时, 开始迭代序列
    26     print(list(itertools.dropwhile(lambda x: x<3, [1,2,3,4,5,6])))
    27     # takewhile(func, seq );当函数f执行返回假时, 停止迭代序列
    28     print(list(itertools.takewhile(lambda x: x>4, [1,2,3,4,5,6])))
    29     # islice(seq[, start], stop[, step]);
    30     print(list(itertools.islice(itertools.count(10), 5)))
    31     print(list(itertools.islice("1234567890", 1, 8, 2)))
    32     # cycle(seq, times)
    33     print(list(itertools.islice(itertools.cycle("abc"), 8)))
    34     # 建一个迭代器,生成项imap(fn, [], [])
    35     print(list(itertools.imap(lambda x,y:"imap: "+str(x)+"+"+str(y), [2,2,2], [3,3,3,4])))
    36     # product(iter1,iter2, ... iterN, [repeat=1])
    37     # 创建一个迭代器,生成表示item1,item2等中的项目的笛卡尔积的元组,repeat是一个关键字参数,指定重复生成序列的次数
    38     for i in itertools.product([1,2,3], [4,5,6], [7,8,9], repeat=1):
    39         print i
    40     for i in itertools.product([1,2,3], [4,5,6], repeat=2):
    41     # for i in itertools.product([1,2,3], [4,5,6], [1,2,3], [4,5,6], repeat=1):
    42         print i
    43     # permutations(p[,r]);返回p中任意取r个元素做排列的元组的迭代器
    44     for i in itertools.permutations([1, 2, 3], 3):
    45         print i
    46     # combinations(iterable,r);创建一个迭代器,返回iterable中所有长度为r的子序列, note:不带重复
    47     print(list(itertools.combinations([1,2,3], 2)))
    48     # combinations_with_replacement() 带重复
    49     print(list(itertools.combinations_with_replacement([1,2,3], 2)))
    50     # tee(iterable [, n])-> (<itertools.tee object at 0x0288CAA8>, <itertools.tee object at 0x0288CAD0>, ...)
    51     t1 = itertools.tee([1,2,3], 2)[1]
    52     for i in t1:
    53         print i
    54 
    55 
    56 if __name__ == '__main__':
    57     main()
  • 相关阅读:
    临床是什么意思
    .NET编程 TripleDES加解密范例
    七个C#编程的小技巧
    什么是医技科室
    NT Service与桌面交互
    如何在全局程序集缓存 (GAC) 中安装 DLL 文件
    C# 获取机器码
    .NET编程 字节数组、数值和十六进制字符串的转换
    C#.Net的全局键盘钩子(Hook)技术
    VS2008安装"deffactory.dat"文件错误解决方法
  • 原文地址:https://www.cnblogs.com/huaizhi/p/8583899.html
Copyright © 2011-2022 走看看