You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成满足前两位与后两位分别求和条件的itertools.product组合?

解决方案

你只需要修改combination列表推导式里的筛选条件即可,把原来的总求和判断,替换为前两位求和、后两位求和分别满足小于等于21的判断:

import itertools
a = [*range(22)], [*range(22)], [*range(22)], [*range(22)]

# 修改筛选条件:前两位求和<=21 且 后两位求和<=21
combination = [seq for seq in itertools.product(*a) if sum(seq[:2]) <= 21 and sum(seq[2:]) <= 21]
print(combination)

lst1 = [item[0] for item in combination]
lst2 = [item[1] for item in combination]
lst3 = [item[2] for item in combination]
lst4 = [item[3] for item in combination]

逻辑说明

  • seq[:2] 取元组的前两个元素,sum(seq[:2]) 计算前两位的和
  • seq[2:] 取元组的后两个元素,sum(seq[2:]) 计算后两位的和
  • 两个条件用and关联,同时满足才会被保留,你需要的(0, 21, 1, 20)这类组合就会被正常筛选出来了。

内容的提问来源于stack exchange,提问作者Janani Ethirraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 06:06:03