【问题标题】:Python 2d array iterationPython 2d 数组迭代
【发布时间】:2015-08-13 18:49:42
【问题描述】:

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

例如:

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]

它不工作。

【问题讨论】:

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


【解决方案1】:

无需重新分配预初始化 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)

【讨论】:

    【解决方案2】:

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

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

    您没有提供太多代码,因此很难说出为什么您的代码不起作用。我怀疑您没有正确初始化矩阵。但是您不需要初始化然后分配,您可以通过列表理解一步完成所有操作

    【讨论】:

      猜你喜欢
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多