平时经常碰到全排列或者在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])