python - 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
我见过许多不同的解决方案,例如 -如何获取列表元素的所有可能组合?,但它不适合我
附加组件:数组不能被变异
解决方案
由于您正在寻找列表的笛卡尔积,请使用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
推荐阅读
- python - 如何在数据框中为 groupby 做 Python
- python - python覆盖没有代码源(内置)
- json - 什么是标记语言?(XML vs YAML vs JSON)
- angular - 从Angular Post请求获取参数到Spring作为对象,而不是字符串
- python - 转置 Excel 表格的第一列,删除空单元格并将其附加到特定行
- javascript - 每当我尝试使用 .map 获取数据时,都会出错
- javascript - 如何使用javascript在树枝中循环更改div的背景颜色
- php - 在 Symfony 5.3 phpunit 测试期间,“security.user_password_hasher”的定义没有类?
- google-drive-api - 如何使用 GDrive API 获取共享驱动器的所有者?
- django - 在 django 中使用 ListView 分页时,如何确定每页显示的数字对象?