Python 将两个一维列表串联起来,得到一个多维列表
对于我的应用范围,我需要将两个一维数组连接到一个多维数组中,这两个数组都是使用Python中的(最终嵌套的)Python 将两个一维列表串联起来,得到一个多维列表,python,python-3.x,list,nested-lists,cartesian-product,Python,Python 3.x,List,Nested Lists,Cartesian Product,对于我的应用范围,我需要将两个一维数组连接到一个多维数组中,这两个数组都是使用Python中的(最终嵌套的)lists实现的。连接必须打印第一个数组的元素与第二个数组的元素之间的所有可能组合 vectA=[124,172,222,272,323,376,426,479,531] vectB=[440,388,336,289,243,197,156,113,74] 预期结果是一个多维数组,其中包含vectA与vectB的所有元素(笛卡尔积)的组合 使用: 无需在此处导入包 您也可以使用简单的:
list
s实现的。连接必须打印第一个数组的元素与第二个数组的元素之间的所有可能组合
vectA=[124,172,222,272,323,376,426,479,531]
vectB=[440,388,336,289,243,197,156,113,74]
预期结果是一个多维数组,其中包含vectA
与vectB
的所有元素(笛卡尔积)的组合
使用:
无需在此处导入包 您也可以使用简单的:
此外,我建议输出一个列表,而不是列表列表:
output = [(a, b) for a in vectA for b in vectB]
给你:[(124440),(124388),(124336),…,(53174)]
在我看来,使用元组将更清楚地向其他人传达您将vectA的所有值与vectB的所有值配对的意图
您仍然可以像处理列表一样,执行例如output[0]
以获取(124440)
和output[0][0]
以获取124
但是请注意,您可以而不是像覆盖列表的值一样覆盖元组的值,因为元组是不可变的。您好,欢迎光临。你试过什么没用的?这实际上是一件非常简单的事情,所以我不确定我是否理解您的问题是什么……通常,在Python中,这些被称为
列表
,而不是数组
。请查看numpy
,了解Python中用于数组操作的性能和事实上的标准库
from itertools import product
vectA=[124,172,222,272,323,376,426,479,531]
vectB=[440,388,336,289,243,197,156,113,74]
output = list(product(vectA,vectB))
output = [list(i) for i in output]
print(output)
vectA = [124, 172, 222, 272, 323, 376, 426, 479, 531]
vectB = [440, 388, 336, 289, 243, 197, 156, 113, 74]
output = [[a, b] for a in vectA for b in vectB]
print(output)
output = [(a, b) for a in vectA for b in vectB]