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

如何基于单个1D列表生成包含所有两两元组的2D数组?

Python实现1D列表生成全配对元组2D数组的最优方案

方法1:原生列表推导(最简洁,小数据量效率最高)

不需要引入任何第三方依赖,一行代码即可实现,可读性极强:

list1 = [1,2,3]
output = [[(i, j) for j in list1] for i in list1]

外层循环遍历list1的每个元素作为元组的第一个值,内层循环遍历list1所有元素作为元组的第二个值,生成的结构完全匹配示例要求,长度在万级以下的列表用该方案完全够用。

方法2:Numpy向量化实现(大数据量效率最优)

如果原始列表长度很大(十万级及以上),用numpy的向量化操作会比纯Python循环快1~2个数量级,能大幅降低运算耗时:

import numpy as np
list1 = [1,2,3]
arr = np.array(list1)
# 生成笛卡尔积后reshape为目标结构
output = np.stack(np.meshgrid(arr, arr), axis=-1).reshape(len(arr), len(arr), 2).tolist()
# 若不需要转成Python原生列表,直接保留numpy数组格式效率会更高

方案选型参考

  • 小数据量(列表长度<10000):优先选列表推导方案,无额外依赖、代码简洁、速度满足需求
  • 大数据量(列表长度>=10000):优先选numpy方案,向量化运算规避了Python循环的性能损耗,执行效率更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:45:05