更改itertools的输出

时间:2013-03-26 07:52:38

标签: list python-3.x

import itertools
def x(a,b):
    x = [[i] for i in itertools.product(a, repeat=b)]
    return [x]
print (x({0,1},3))

输出

[[[(0, 0, 0)], [(0, 0, 1)], [(0, 1, 0)], [(0, 1, 1)], [(1, 0, 0)], [(1, 0, 1)], [(1, 1,    0)], [(1, 1, 1)]]]

我想要的是它看起来像这样,所有的()被删除,开始和结束[]被移除

[[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]]  

1 个答案:

答案 0 :(得分:0)

为什么不简单

return list(itertools.product(a, repeat=b))

或者,如果您希望所有元素都是列表,

return map(list, itertools.product(a, repeat=b))

另外,请注意从名为x的函数中写入名为x的变量;这会给递归带来麻烦。