添加两个具有不同缩进尺寸的列表列表

时间:2017-10-02 00:16:31

标签: python list loops matrix union

嗨,例如,我有一个包含这些标题的列表:

edges1=['a', 'g', 'w', 'Q']
list1=[[0, 2, 0, 9], [2, 0, 15, 2], [0, 15, 0, 7], [9, 2, 7, 0]]

edges2=['a', 'w', 'Q', 'front', 'Z']
list2=[[0, 0, 0, 12, 0], [0, 0, 0, 2, 0], [0, 0, 0, 3, 5], [12, 2, 3, 0, 2], [0, 0, 5, 2, 0]]

如您所见,这些是以矩阵形状保存的图形。我需要将它们加在一起,每当它是一个共同的边时,我应该选择较低的值并将其放在最终的矩阵中。

最终答案应该是这样的:

    a:g:w:Q:front:Z
    0 2 0 9 12 0
    2 0 15 2 0 0
    0 15 0 7 2 0
    9 2 7 0 3 5
    12 0 2 3 0 2
    0 0 0 5 2 0
列表表单中的

应如下所示:

  Final_list:[[0,2,0,9,12,0],[2,0,15,2,0,0],[0,15,0,7,2,0],[9,2,7,0,3,5],[12,0,2,3,0,2],[0,0,0,5,2,0]]

我应该使用哪种方法来获得此输出?

2 个答案:

答案 0 :(得分:0)

list1和list2都有不同的形状/尺寸,可以做任何"添加"你需要确保形状是一样的。

我建议您使用numpy转换您的'列表'进入numpy数组。从这里你应该能够添加额外的行和列来匹配形状。

至于'添加'最小值不是0。我会用一个可笑的大整数替换列表中的所有0。然后,您可以使用numpy的最小功能来返回添加的'矩阵。只需记住将结果/添加的矩阵中的所有可笑大整数再次替换为0。

你应该都很好。

答案 1 :(得分:0)

由于表单边缘1和2是矩阵的一种形式,你可以做的是使用列表1和列表2的新的顶点联合列表的长度创建一个新矩阵。所以你有两个相同的新形状矩阵1和矩阵2.然后你可以比较它们。