使用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,但我没有找到任何可以做到这一点的东西。有什么想法吗?
答案 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')]