zoukankan      html  css  js  c++  java
  • python解决排列组合

    笛卡尔积:itertools.product(*iterables[, repeat])

    import itertools
    for i in itertools.product('BCDEF', repeat = 2):
        print(''.join(i),end=",")
    print('
    ')
    
    # 输出 BB BC BD BE BF CB CC CD CE CF DB DC DD DE DF EB EC ED EE EF FB FC FD FE FF
    

      两个元组进行笛卡尔积:

    import itertools
    a = (1, 2)
    b = ('A', 'B', 'C')
    c = itertools.product(a,b)
    for i in c:
        print(i,end=",")
    
    # 输出(1, 'A') (1, 'B') (1, 'C') (2, 'A') (2, 'B') (2, 'C')
    

    排列:itertools.permutations(iterable[, r])

    import itertools
    for i in itertools.permutations('BCD', 2):
        print(''.join(i),end=",")
    # 输出 BC BD CB CD DB DC
    print('
    ')
    

    组合:itertools.combinations(iterable, r)

    import itertools
    for i in itertools.combinations('BCDEF', 2):
        print(''.join(i),end=" ")
    # 输出 BC BD BE BF CD CE CF DE DF EF
    print('
    ')

    组合(包含自身重复):itertools.combinations_with_replacement(iterable, r)

    import itertools
    for i in itertools.combinations_with_replacement('ABC', 3):
        print (''.join(i),end=' ')
    
    # 输出 AAA AAB AAC ABB ABC ACC BBB BBC BCC CCC
    print('
    ')
    

    举例

    'BCDEF五个字母组合问题'
    import itertools
    
    print("1个组合:")
    for i, val in enumerate(list(itertools.combinations('BCDEF', 1))):
        print("序号:%s   值:%s" % (i + 1, ''.join(val)))
    print("2个组合:")
    for i, val in enumerate(list(itertools.combinations('BCDEF', 2))):
        print("序号:%s   值:%s" % (i + 1, ''.join(val)))
    print("3个组合:")
    for i, val in enumerate(list(itertools.combinations('BCDEF', 3))):
        print("序号:%s   值:%s" % (i + 1, ''.join(val)))
    print("4个组合:")
    for i, val in enumerate(list(itertools.combinations('BCDEF', 4))):
        print("序号:%s   值:%s" % (i + 1, ''.join(val)))
    print("5个组合:")
    for i, val in enumerate(list(itertools.combinations('BCDEF', 5))):
        print("序号:%s   值:%s" % (i + 1, ''.join(val)))
    
  • 相关阅读:
    mouseover、mouseout,mouseenter、mouseleave区别
    第一篇博客,就真的是随笔,写写最近的状况。
    MySQL日期时间函数大全 转
    解决Eclipse中SVN版本信息不显示的问题
    android 环境变量配置,以及sdcard配置
    服务器Out of Memory
    Android SDK Manager 更新时的“https://dl-ssl.google.com refused”错误
    不可变的原始值和可变的对象引用
    null和undefined
    HTML 表单
  • 原文地址:https://www.cnblogs.com/xiao-apple36/p/10861830.html
Copyright © 2011-2022 走看看