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

Scala中如何将两个列表合并为笛卡尔积形式的元组列表?

两个列表笛卡尔积的简洁实现

完全不需要手写冗余的多层嵌套循环,有两种非常简便的实现方式:

  • 用标准库itertools.product(性能最优,写法最简洁)
    这是计算笛卡尔积的正统实现,属于Python标准库自带功能,不需要安装第三方依赖:
    from itertools import product
    
    list1 = [1, 2, 3]
    list2 = ["a", "b"]
    list3 = list(product(list1, list2))
    
    执行后得到的list3和预期结果完全一致。因为product返回的是惰性迭代器,所以需要用list()转成实体列表;如果只是要遍历结果,甚至可以不用转换,直接在for循环里调用,内存效率更高。这个方法还支持传入任意多个可迭代对象,计算多个列表的笛卡尔积直接往参数里追加对应对象即可。
  • 用列表推导式(零导入)
    如果不想引入模块,直接写双层遍历的列表推导式即可,逻辑直白:
    list3 = [(item1, item2) for item1 in list1 for item2 in list2]
    
    运行结果和上面的方法完全相同,本质就是两层for循环的简写形式,对于长度不大的列表来说完全够用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:48:19