在Python中创建两组列表的所有组合

时间:2017-02-08 03:59:50

标签: python list itertools

我正在尝试使用以下方法创建两组列表的所有组合:

x = [[1,2,3],[4,5,6]]
y = [['a','b','c'],['d','e','f']]

combos  = [[1,2,3,'a','b','c'],[4,5,6,'d','e','f'],[4,5,6,'a','b','c'],[4,5,6,'d','e','f']]

我认为itertools可能有所帮助但不确定如何。感谢

1 个答案:

答案 0 :(得分:4)

您可以使用productchain

from itertools import product, chain
[list(chain(*i)) for i in product(x, y)]

#[[1, 2, 3, 'a', 'b', 'c'],
# [1, 2, 3, 'd', 'e', 'f'],
# [4, 5, 6, 'a', 'b', 'c'],
# [4, 5, 6, 'd', 'e', 'f']]

或者你可以使用列表理解:

[i + j for i in x for j in y]

#[[1, 2, 3, 'a', 'b', 'c'],
# [1, 2, 3, 'd', 'e', 'f'],
# [4, 5, 6, 'a', 'b', 'c'],
# [4, 5, 6, 'd', 'e', 'f']]