zoukankan      html  css  js  c++  java
  • itertools

    0. Python中引入itertools

    1. 笛卡尔积:

     product(iter1, iter2,...,iterN,[repeat=i])

     1 from itertools import product
     2 
     3 #笛卡尔积
     4 #3种常见的iter类型
     5 for x in product('10',repeat=3):
     6     print(x)
     7 for x in product([1,0],repeat=3):
     8     print(x)
     9 for x in product((0,1),repeat=3):
    10     print(x)

    结果

     1 ('1', '1', '1')
     2 ('1', '1', '0')
     3 ('1', '0', '1')
     4 ('1', '0', '0')
     5 ('0', '1', '1')
     6 ('0', '1', '0')
     7 ('0', '0', '1')
     8 ('0', '0', '0')
     9 
    10 (1, 1, 1)
    11 (1, 1, 0)
    12 (1, 0, 1)
    13 (1, 0, 0)
    14 (0, 1, 1)
    15 (0, 1, 0)
    16 (0, 0, 1)
    17 (0, 0, 0)
    18 
    19 (0, 0, 0)
    20 (0, 0, 1)
    21 (0, 1, 0)
    22 (0, 1, 1)
    23 (1, 0, 0)
    24 (1, 0, 1)
    25 (1, 1, 0)
    26 (1, 1, 1)
    View Code

    复杂示例  

    lucky+=[int(''.join([str(y) for y in x])) for x in list(product([4,7],repeat=i))]

    2.全排列

     permutations(iterable,[,r])

    1 from itertools import permutations
    2 
    3 for x in permutations('ABC'):
    4     print(x)

     结果

    ('A', 'B', 'C')
    ('A', 'C', 'B')
    ('B', 'A', 'C')
    ('B', 'C', 'A')
    ('C', 'A', 'B')
    ('C', 'B', 'A')

    3. 组合

     combinations(iterable, r)

    1 from itertools import combinations
    2 
    3 for x in combinations('ABCD',2):
    4     print(x)
    5 for x in combinations([1,2,3,4],2):
    6     print(x)

     结果

    ('A', 'B')
    ('A', 'C')
    ('B', 'C')
    (1, 2)
    (1, 3)
    (2, 3)

    未完待续...

  • 相关阅读:
    PHP获取指定分钟数的下一个整数倍
    phpspreadsheet
    澳大利亚 主要城市列表
    db2编目抽取
    openssl实现CA自签证书和颁发数字证书
    基于Docker的redis集群搭建
    Python测试DB2连通性
    在Vim中查看文件编码
    搭建redis集群
    Python(十)之GUI编程
  • 原文地址:https://www.cnblogs.com/AbcFly/p/6175714.html
Copyright © 2011-2022 走看看