我们假设我有一个列表a:
a = [0, 0, [0, 1], [0, 1, 2]]
其中a可以是任意长度,其成分可以是任意长度,我想生成一个新列表,可以是值的任意组合,以便我将返回给定示例:
b = [[0,0,0,0],
[0,0,0,1],
[0,0,0,2],
[0,0,1,0],
[0,0,1,1],
[0,0,1,2]]
我认为这只是一个循环问题,但我会感激任何帮助。
由于
答案 0 :(得分:4)
>>> import itertools
>>> a = [0, 0, [0, 1], [0, 1, 2]]
>>> a2 = [x if isinstance(x, list) else [x] for x in a]
>>> # = [[0], [0], [0, 1], [0, 1, 2]]
>>> list(itertools.product(*a2))
[(0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 0, 2), (0, 0, 1, 0), (0, 0, 1, 1), (0, 0, 1, 2)]