使用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)]