首页 > 解决方案 > Python中的所有列表组合

问题描述

例如我有一个数组,看起来像这样[[1, 2, 3], [4, 5], [7, 8, 9]]

我的任务也是显示数组中的所有组合,如下所示:

1-4-7, 1-4-8, 1-4-9

1-5-7, 1-5-8, 1-5-9

2-4-7, 2-4-8, 2-4-9

2-5-7, 2-5-8, 2-5-9

3-4-7, 3-4-8, 3-4-9

3-5-7, 3-5-8, 3-5-9

我见过许多不同的解决方案,例如 -如何获取列表元素的所有可能组合?,但它不适合我

附加组件:数组不能被变异

标签: python

解决方案


由于您正在寻找列表的笛卡尔积,请使用itertools.product

from itertools import product

data = [[1, 2, 3], [4, 5], [7, 8, 9]]

for p in product(*data):
    print("-".join(map(str, p)))

1-4-7
1-4-8
1-4-9
1-5-7
# ...
3-4-9
3-5-7
3-5-8
3-5-9

推荐阅读