python解决全排列或在n个数组中每个数组选一个值组成的所有序列等等问题
内容摘要
这篇文章主要为大家详细介绍了python解决全排列或在n个数组中每个数组选一个值组成的所有序列等等问题,具有一定的参考价值,可以用来参考一下。
感兴趣python解决全排列或在n
感兴趣python解决全排列或在n
文章正文
这篇文章主要为大家详细介绍了python解决全排列或在n个数组中每个数组选一个值组成的所有序列等等问题,具有一定的参考价值,可以用来参考一下。
感兴趣python解决全排列或在n个数组中每个数组选一个值组成的所有序列等等问题的小伙伴,下面一起跟随php教程的小编罗X来看看吧。平时经常碰到全排列或者在n个数组中每个数组选一个值组成的所有序列等等问题,可以用permutation和product解决,很方便,所以在此mark一下吧
# php教程网 (www.idcnote.com)
from itertools import *
if __name__ == '__main__':
for j in permutations([2,5,6]):
print(j)
'''
(2, 5, 6)
(2, 6, 5)
(5, 2, 6)
(5, 6, 2)
(6, 2, 5)
(6, 5, 2)
'''
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [7, 8, 9]
for i in product(list1,list2,list3):
print(i)
'''
(1, 4, 7)
(1, 4, 8)
(1, 4, 9)
(1, 5, 7)
(1, 5, 8)
(1, 5, 9)
(1, 6, 7)
(1, 6, 8)
(1, 6, 9)
(2, 4, 7)
(2, 4, 8)
(2, 4, 9)
(2, 5, 7)
(2, 5, 8)
(2, 5, 9)
(2, 6, 7)
(2, 6, 8)
(2, 6, 9)
(3, 4, 7)
(3, 4, 8)
(3, 4, 9)
(3, 5, 7)
(3, 5, 8)
(3, 5, 9)
(3, 6, 7)
(3, 6, 8)
(3, 6, 9)
'''
print('*'*20)
for i in product(*[list2]*3):
print(i)
'''
(4, 4, 4)
(4, 4, 5)
(4, 4, 6)
(4, 5, 4)
(4, 5, 5)
(4, 5, 6)
(4, 6, 4)
(4, 6, 5)
(4, 6, 6)
(5, 4, 4)
(5, 4, 5)
(5, 4, 6)
(5, 5, 4)
(5, 5, 5)
(5, 5, 6)
(5, 6, 4)
(5, 6, 5)
(5, 6, 6)
(6, 4, 4)
(6, 4, 5)
(6, 4, 6)
(6, 5, 4)
(6, 5, 5)
(6, 5, 6)
(6, 6, 4)
(6, 6, 5)
(6, 6, 6)
'''
# End 512.笔记 www.idcnote.com
解释一下第三个product的参数,*[list2]*3,也就是*[[4,5,6]]*3,后面的乘以3就是复制三份,参数变为*[[4,5,6],[4,5,6],[4,5,6]],最前面的*号是将参数分解为三个独立的参数,也即通常所说的解包,如果是字典的话需要两个星号**,这里的一个*号也即代表了product([4,5,6],[4,5,6],[4,5,6])
注:关于python解决全排列或在n个数组中每个数组选一个值组成的所有序列等等问题的内容就先介绍到这里,更多相关文章的可以留意
代码注释