在python中组合多个项目列表

时间:2018-05-03 21:08:56

标签: python python-3.x

使用Python进行编码我需要获得所有可能的项目组合:

[a, [a, b], [c, d, e]]

转变为:

[a, a, c]
[a, a, d]
[a, a, e]
[a, b, c]
[a, b, d]
[a, b, e]

每个职位的总职位数和项目数是可变的。

我已经查看了itertools,但我没有找到任何可以做到这一点的东西。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

所以你想要cartesian product

from itertools import product

print(*product('a', 'ab', 'cde'), sep='\n')

输出:

('a', 'a', 'c')
('a', 'a', 'd')
('a', 'a', 'e')
('a', 'b', 'c')
('a', 'b', 'd')
('a', 'b', 'e')

答案 1 :(得分:1)

您可以使用product方法导入itertools

my_list = ['a', ['a', 'b'], ['c', 'd', 'e']]
list = list(itertools.product(*my_list))
print(list)

输出

[('a', 'a', 'c')
('a', 'a', 'd')
('a', 'a', 'e')
('a', 'b', 'c')
('a', 'b', 'd')
('a', 'b', 'e')]