Python 中一组列表的所有可能排列
在 Python 中,我有一个包含 n 个列表的列表,每个列表都有可变数量的元素。如何创建一个包含所有可能排列的单个列表:
例如
[ [ a, b, c], [d], [e, f] ]
我想要
[ [a, d, e] , [a, d, f], [b, d, e], [b, d, f], [c, d, e], [c, d, f] ]
注意我事先不知道 n 。我认为 itertools.product 将是正确的方法,但它要求我提前知道参数的数量
In Python I have a list of n lists, each with a variable number of elements. How can I create a single list containing all the possible permutations:
For example
[ [ a, b, c], [d], [e, f] ]
I want
[ [a, d, e] , [a, d, f], [b, d, e], [b, d, f], [c, d, e], [c, d, f] ]
Note I don't know n in advance. I thought itertools.product would be the right approach but it requires me to know the number of arguments in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您无需提前知道
n
即可使用itertools.product
You don't need to know
n
in advance to useitertools.product
您可以通过多级列表理解来做到这一点:
You can do it with a multi-level list comprehension:
itertools.product 对我有用。
itertools.product works for me.
如果由于某种原因,您需要定义自己的方法而不使用
itertools.product
(例如,面试问题):输出:
If, for some reason, you need to define your own method and not use
itertools.product
(e.g., for a interview question):Output: