Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python获取列表的排列_Python_List_Loops_Combinations_Permutation - Fatal编程技术网

使用python获取列表的排列

使用python获取列表的排列,python,list,loops,combinations,permutation,Python,List,Loops,Combinations,Permutation,假设我有一个列表: 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]] 我认为这只是一个循环的问题,但我将感谢任何帮助 感谢您使用: 使用: “评论”是故意的吗?@maghtypor

假设我有一个列表:

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]]
我认为这只是一个循环的问题,但我将感谢任何帮助

感谢您使用:

使用:


“评论”是故意的吗?@maghtypork,是的,是故意的。我想告诉大家元素应该是序列(而不是int)。注释是有意的吗?@MightyPork,是的,是的。我想告诉大家,元素应该是序列(而不是int)。
>>> 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)]