python解决全排列或在n个数组中每个数组选一个值组成的所有序列等等问题

前端之家收集整理的这篇文章主要介绍了python解决全排列或在n个数组中每个数组选一个值组成的所有序列等等问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
感兴趣python解决全排列或在n个数组中每个数组选一个值组成的所有序列等等问题的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
平时经常碰到全排列或者在n个数组中每个数组选一个值组成的所有序列等等问题,可以用permutation和product解决,很方便,所以在此mark一下吧
 #  编程之家  (jb51.cc) 

from itertools import *
if __name__ == '__main__':
    for j in permutations([2,5,6]):
        print(j)
    '''
    (2,6)
    (2,6,5)
    (5,2,6)
    (5,2)
    (6,5)
    (6,2)
    '''
    list1 = [1,3]
    list2 = [4,6]
    list3 = [7,8,9]
    for i in product(list1,list2,list3):
        print(i)
    '''
    (1,4,7)
    (1,8)
    (1,9)
    (1,9)
    (2,7)
    (2,8)
    (2,9)
    (3,7)
    (3,8)
    (3,9)
    '''
    print('*'*20)
    for i in product(*[list2]*3):
        print(i)
    '''
    (4,4)
    (4,5)
    (4,6)
    (4,4)
    (5,6)
    (6,4)
    (6,6)
    '''


# End 512.笔记 jb51.cc
解释一下第三个product的参数,*[list2]*3,也就是*[[4,6]]*3,后面的乘以3就是复制三份,参数变为*[[4,6],[4,6]],最前面的*号是将参数分解为三个独立的参数,也即通常所说的解包,如果是字典的话需要两个星号**,这里的一个*号也即代表了product([4,6])

猜你在找的Python相关文章