Python 2d数组迭代



我有两个列表,一个有参数名称,一个有引脚名称,我试图将这两个列表组合成一个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]

不需要重新分配预先初始化的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)

您可以使用以下命令创建matrix1:

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

你没有给出太多代码,所以很难说为什么你的代码不起作用。我怀疑你没有适当地初始化矩阵。但是你不需要初始化然后赋值,你可以用列表推导式一步完成

相关内容

  • 没有找到相关文章

最新更新