我有两个列表,一个带有参数名称,另一个带有引脚名称,我试图将两个列表组合成一个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]
它没有用。
答案 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]
你没有提供太多代码,所以很难说你为什么不工作。我怀疑你没有适当地初始化你的矩阵。但是你不需要初始化然后分配,你可以用列表理解
一步一步完成