在多个列表之间生成排列
Generate permutation among several lists
假设我有 A=[a,b,c], B=[d,e], C=[f,g] 并且我想要 A,B 和 C 之间所有可能的排列。
例如:
[[a,d,f],[a,d,g],[b,d,f],[b,d,g],[c,d,f],[c,d,g],[a,e,f],[a,e,g],[b,e,f],[b,e,g],[c,e,f],[c,e,g]]
如何在 python 中执行此操作?
一种方法是 itertools.product:
>>> from itertools import product
>>> list(product(A,B,C))
[('a', 'd', 'f'),
('a', 'd', 'g'),
('a', 'e', 'f'),
('a', 'e', 'g'),
('b', 'd', 'f'),
('b', 'd', 'g'),
('b', 'e', 'f'),
('b', 'e', 'g'),
('c', 'd', 'f'),
('c', 'd', 'g'),
('c', 'e', 'f'),
('c', 'e', 'g')]
假设我有 A=[a,b,c], B=[d,e], C=[f,g] 并且我想要 A,B 和 C 之间所有可能的排列。
例如:
[[a,d,f],[a,d,g],[b,d,f],[b,d,g],[c,d,f],[c,d,g],[a,e,f],[a,e,g],[b,e,f],[b,e,g],[c,e,f],[c,e,g]]
如何在 python 中执行此操作?
一种方法是 itertools.product:
>>> from itertools import product
>>> list(product(A,B,C))
[('a', 'd', 'f'),
('a', 'd', 'g'),
('a', 'e', 'f'),
('a', 'e', 'g'),
('b', 'd', 'f'),
('b', 'd', 'g'),
('b', 'e', 'f'),
('b', 'e', 'g'),
('c', 'd', 'f'),
('c', 'd', 'g'),
('c', 'e', 'f'),
('c', 'e', 'g')]