Python - 排列/组合列

时间:2015-09-15 20:47:21

标签: python python-2.7 combinations permutation itertools

我有一个清单

mylist = [
    ['f', 'l', 'a', 'd', 'l', 'f', 'k'], 
    ['g', 'm', 'b', 'b', 'k', 'g', 'l'], 
    ['h', 'n', 'c', 'a', 'm', 'j', 'o'], 
    ['i', 'o', 'd', 'c', 'n', 'i', 'm'],
    ['j', 'p', 'e', 'e', 'o', 'h', 'n'], 
]

我想要按列进行排列/组合,这样列的元素仅限于该列,即f,g,h,i,j保留在第1列,l,m,n,o,p中在第2列等中,在排列/组合的结果中。如何在Python 2.7中实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以use zip(*mylist)列出"列" mylist。然后使用the * operator(再次)将这些列表解压缩为IT.productIT.combinations的参数。例如,

import itertools as IT
list(IT.product(*zip(*mylist)))

产量

[('f', 'l', 'a', 'd', 'l', 'f', 'k'),
 ('f', 'l', 'a', 'd', 'l', 'f', 'l'),
 ('f', 'l', 'a', 'd', 'l', 'f', 'o'),
 ('f', 'l', 'a', 'd', 'l', 'f', 'm'),
 ...]