python - 如何找到从第一个列表中选择一个项目和从第二个列表中选择最多 n 个项目的所有组合
问题描述
我有两个列表,我想返回一个新的列表列表,其中每个列表都是从第一个列表中选择一个项目,从第二个列表中选择最多2 个项目:来自实例:
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 组合并挣扎,请帮助
解决方案
for i in vaccinate_list:
all_combinations.append(i)
for i in vaccinate_list:
for j in quarantine_list:
all_combinations.append((i,j))
for i in vaccinate_list:
for j in quarantine_list:
for k in quarantine_list:
all_combinations.append((i, j, k))
可能很复杂,并且可能是一种愚蠢的方法,但它确实有效
推荐阅读
- c - 使用 HAL 的 NUCLEO-F303K8 上的 DMA 不当行为
- ruby-on-rails - 当活动记录对象不为零时引用视图表中的字段时的零值
- reactjs - 在关键帧动画中使用 Calc 中的道具 - 样式化组件、关键帧和 React Hooks
- database - 数据结构 - 根据待处理的操作对记录进行优先级排序
- python - 有没有更好的方法来为 Python 实现一个通用的“变化”习语?
- amazon-web-services - aws 网络负载均衡器有时会通过 aws transfer 系列返回“服务不可用”
- django - ValueError:使用 Docker、django-pipeline、whitenoise 在 Heroku 上缺少静态文件清单条目
- python - 如何将二进制字符串传输回原始文件格式(不仅仅是解码内容)
- azure - Spring Boot RestTemplate 不适用于 Azure 函数
- video - 自动检测视频源中烧录字幕的框/坐标