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

如何用一行代码实现二维列表与一维列表的笛卡尔积合并?

优化实现方案

针对你的需求,这里提供几种更简洁优雅的一行代码实现方式:

1. Pythonic列表推导式(推荐)

这是最直观且贴合数学笛卡尔积逻辑的写法,无需额外转换列表,直接通过嵌套遍历生成结果:

[sub_lst + [item] for sub_lst in lst1 for item in lst2]

逻辑说明:遍历lst1中的每个子列表sub_lst,再遍历lst2中的每个元素item,将sub_lst与[item]拼接,最终生成所有笛卡尔积组合。

2. 基于itertools.product的优化写法

如果坚持使用itertools,可以省去提前转换lst2的步骤,直接在映射逻辑中处理元素拼接:

import itertools
list(map(lambda pair: pair[0] + [pair[1]], itertools.product(lst1, lst2)))

这里itertools.product(lst1, lst2)会生成(子列表, 元素)的元组对,通过lambda直接将元组中的子列表与单元素列表拼接,避免了额外的列表转换操作。

关于工具库的选择

itertools是处理迭代器和组合逻辑的标准库,完全适用于这类场景,但列表推导式在这种简单的笛卡尔积拼接需求下,写法更简洁、可读性更强,更符合Python的惯用风格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:29:51