You need to enable JavaScript to run this app. Python 如何生成多个列表各取一个元素的所有组合?
优惠活动
大模型
产品
解决方案
定价
更多

Python 如何生成多个列表各取一个元素的所有组合?

Python跨多列表生成元素组合的实现方法

你之前用itertools.permutations、itertools.combinations出不来正确结果,本质是选的函数不对:这俩都是处理单个可迭代对象内部元素的——要么是生成全排列,要么是生成固定长度的不重复组合,根本不支持从多个独立列表里各拿一个元素做搭配的逻辑。
你需要的“从每个列表中各取1个元素、生成所有可能搭配”的效果,本质是数学上的笛卡尔积,直接使用itertools.product即可实现。

实现代码

from itertools import product

list1 = [1, 2, 3]
list2 = [5, 6]
list3 = [7, 8, 9]

# 传入所有待组合的列表,自动生成全搭配结果
all_combinations = [list(item) for item in product(list1, list2, list3)]

关键说明

  • product会按照传入列表的顺序逐一遍历元素,生成结果的顺序和你示例中预期的输出顺序完全匹配
  • product迭代产出的元素是元组类型,通过列表推导将每个元组转为列表格式,就能得到完全符合要求的all_combinations结构
  • 如果后续需要参与组合的列表数量较多,可以把所有待组合列表存入一个总列表,通过解包语法传入参数,省去挨个写列表名的麻烦:
    source_lists = [list1, list2, list3]
    all_combinations = [list(item) for item in product(*source_lists)]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 16:36:03