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

Haskell中如何将两个列表的元素全量配对为元组?

实现两个列表元素的全配对(笛卡尔积)

你要的是两个列表的笛卡尔积——也就是第一个列表的每个元素和第二个列表的所有元素逐一配对,这和zip按位置配对的逻辑完全不同。下面是两种不用列表生成式的解法:

方法1:嵌套循环手动构建

直接用两层循环遍历两个列表,把每对元素组成元组后添加到结果列表中:

list1 = [1, 2]
list2 = [3, 4]
result = []
for x in list1:
    for y in list2:
        result.append((x, y))
print(result)  # 输出: [(1, 3), (1, 4), (2, 3), (2, 4)]

方法2:使用标准库itertools.product

Python标准库itertools里的product函数专门用来生成多个可迭代对象的笛卡尔积,直接转成列表就能得到结果:

import itertools

list1 = [1, 2]
list2 = [3, 4]
result = list(itertools.product(list1, list2))
print(result)  # 输出: [(1, 3), (1, 4), (2, 3), (2, 4)]

这两种方法都不需要用到列表生成式,完全满足你的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:05:34