使用标准库在运行时创建ND阵列

时间:2019-05-01 19:30:47

标签: python arrays python-3.x numpy

我有三个数组

a = [2]
b = [2,3,6]
c = [1]

我想将它们合并,以便得到大小为len(a)*len(b)的数组,其中包含两者的所有排列。 (C将始终包含一个值)

我认为类似的事情会起作用

newArr = [for i in range len(a)*len(b) [for x in a][for y in b][for z in c]]
print(newArr)

[[2,2,1],[2,3,1],[2,6,1]]

但是,在语言的语法范围内似乎不允许这样做。有人对我如何使用标准库做到这一点有任何线索吗?

2 个答案:

答案 0 :(得分:3)

printf

例如:

[[x, y, z] for x in a for y in b for z in c]

答案 1 :(得分:1)

使用itertools.product(...)

import itertools

a = [2]
b = [2,3,6]
c = [1]

p = itertools.product(a, b, c)

print(list(p))

[(2, 2, 1), (2, 3, 1), (2, 6, 1)]