我想使用python中的加法函数从两个长度为n的数组创建一个nxn矩阵

我想使用python中的加法函数从两个长度为n的数组创建一个nxn矩阵,python,arrays,matrix,append,Python,Arrays,Matrix,Append,我有两个数组n和k,我想用公式n+ik创建一个矩阵。我希望矩阵具有以下形式: n[0]+ik[0] n[0]+ik[1] n[0]+ik[2] etc. n[1]+ik[0] n[1]+ik[1] n[0]+ik[2] etc. etc. 到目前为止,我有 z = 0 + 1j for i,j in n for i,j in k n_com = n + k*z 但我知道它不起作用,我也意识到它没有任何意义。我必须使用append吗 我认为下面的代码很清楚 n =

我有两个数组n和k,我想用公式n+ik创建一个矩阵。我希望矩阵具有以下形式:

n[0]+ik[0] n[0]+ik[1] n[0]+ik[2] etc. 
n[1]+ik[0] n[1]+ik[1] n[0]+ik[2] etc. 
etc. 
到目前为止,我有

z = 0 + 1j

for i,j in n
    for i,j in k 
    n_com = n + k*z 

但我知道它不起作用,我也意识到它没有任何意义。我必须使用append吗

我认为下面的代码很清楚

n = [1, 2, 3]
k = [4, 5, 6]
mat = []
for i in range(len(n)):
    row = []                # ready to make a row
    for j in range(len(k)):
        row.append(n[i] + 1j * k[j])
    mat.append(row)         # add the row to the mat
print(mat)                  # we get it
(如果你感兴趣的话)一个更具蟒蛇风格的方式是

此外,许多科学工作者会使用
numpy
,当矩阵较大时,您可能会期望更好的性能和可用性

import numpy as np
n = np.array(n)
k = np.array(k).reshape((-1, 1))
mat = n + k.repeat(len(n), 1) * 1j

这真的很好,但我似乎得到了一份清单。当我输入(mat)时,它说的是列表,我想我会得到一个nxn矩阵,而不是列表列表。但是这非常有用,我想我可以从这里找到答案,谢谢!如果你想与matrix合作,我真的会推荐numpy:)
import numpy as np
n = np.array(n)
k = np.array(k).reshape((-1, 1))
mat = n + k.repeat(len(n), 1) * 1j