Python 2d数组迭代

时间:2015-08-13 18:49:42

标签: python arrays python-2.7 matrix multidimensional-array

我有两个列表,一个带有参数名称,另一个带有引脚名称,我试图将两个列表组合成一个2d矩阵,但我无法正确使用语法。

例如:

list1 = [parm1,parm2,parm3]
list2 = [end1,end2,end3]

我希望矩阵为:

matrix1= [[parm1+ end1,parm1+end2, parm1+end3]
          [parm2+ end1,parm2+end2, parm2+end3]
          [parm3+ end1,parm3+end2, parm3+end3]

现在我的代码是

for i in range(len(parm_name)):
    for j in range(len(end_name)):
        pin_name[i][j] = parm_name[i] + end_name[j]

它没有用。

2 个答案:

答案 0 :(得分:2)

不是重新分配预初始化的list元素,而只需创建一个新元素:

list1 = [parm1,parm2,parm3]
list2 = [end1,end2,end3]
matrix1 = [[p+e for e in list2] for p in list1]

最后一行可以扩展为以下等效代码:

matrix1 = []
for p in list1:
    result = []
    for e in list2:
        result.append(p+e)
    matrix1.append(result)

答案 1 :(得分:1)

您可以使用以下内容创建matrix1

matrix1 = [[p_name + e_name for e_name in list2] for p_name in list1]

你没有提供太多代码,所以很难说你为什么不工作。我怀疑你没有适当地初始化你的矩阵。但是你不需要初始化然后分配,你可以用列表理解

一步一步完成