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

如何从列表[1,2,3,4]生成含自身配对的矩阵式tuple组合?

生成包含自身配对的元组笛卡尔积解决方案

你需要的是列表的笛卡尔积(所有有序对组合,包含元素与自身的配对),以下是两种直接实现的方法:

方法1:列表推导式

直接通过嵌套循环生成所有元组组合,天然满足格式和配对需求:

lst = [1, 2, 3, 4]
result = [(x, y) for x in lst for y in lst]
print(result)

运行后会输出:
[(1, 1), (1, 2), (1, 3), (1, 4), (2, 1), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 3), (3, 4), (4, 1), (4, 2), (4, 3), (4, 4)]

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

Python标准库的itertools.product专门用于生成笛卡尔积,代码更简洁:

import itertools

lst = [1, 2, 3, 4]
result = list(itertools.product(lst, repeat=2))
print(result)

repeat=2表示用同一个列表重复两次计算乘积,返回的迭代器转成列表后就是目标结果。

为什么之前的代码不符合需求?

如果之前用的是itertools.combinations或combinations_with_replacement:

  • combinations生成的是无重复、不考虑顺序的组合(比如只有(1,2),没有(2,1)和(1,1))
  • combinations_with_replacement允许自身配对,但同样不考虑顺序(只有(1,2),没有(2,1))
    这两个都不满足你需要的全有序对+自身配对的要求,必须用笛卡尔积的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:55:35