我有两个列表,我想返回一个新列表,其中每个列表都是从第一个列表中选择一个项目,从第二个列表中最多选择两个项目: 从实例:
vaccinate_list: [('vaccinate', (2, 3)), ('vaccinate', (8, 1))]
quarantine_list: [('quarantine', (6, 3)), ('quarantine', (3, 4)), ('quarantine', (0, 1))]
将返回(不带新行):
allCombinations = [
[('vaccinate', (2, 3))],
[('vaccinate', (8, 1))],
[('vaccinate', (2, 3)), ('quarantine', (6, 3))],
[('vaccinate', (2, 3)), ('quarantine', (3, 4))],
[('vaccinate', (2, 3)), ('quarantine', (0, 1))],
[('vaccinate', (8, 1)), ('quarantine', (6, 3))],
[('vaccinate', (8, 1)), ('quarantine', (3, 4))],
[('vaccinate', (8, 1)), ('quarantine', (0, 1))],
[('vaccinate', (2, 3)), ('quarantine', (6, 3)), ('quarantine', (3, 4))],
[('vaccinate', (2, 3)), ('quarantine', (6, 3)), ('quarantine', (0, 1))],
[('vaccinate', (2, 3)), ('quarantine', (3, 4)), ('quarantine', (0, 1))],
[('vaccinate', (8, 1)), ('quarantine', (6, 3)), ('quarantine', (3, 4))],
[('vaccinate', (8, 1)), ('quarantine', (6, 3)), ('quarantine', (0, 1))],
[('vaccinate', (8, 1)), ('quarantine', (3, 4)), ('quarantine', (0, 1))]
]
我试过使用intertools组合,但很挣扎, 请帮忙
这可能很复杂,也可能是一种愚蠢的方式,但它是有效的
最好的方法是使用itertools.product。见下文(注释中的解释):
输出:
相关问题 更多 >
编程相关推荐