【问题标题】:Create adjacency matrix from edge list从边缘列表创建邻接矩阵
【发布时间】:2019-03-28 14:15:53
【问题描述】:

您好,我正在尝试编写从边缘列表生成邻接矩阵的代码,但我的代码无法正常工作,我不明白为什么

我已经尝试反转索引并逐步运行它

graph1=[[0,2,3,4],[1,2,4],[0,2,3,4],[1,2,3,4],[0,2,4]]

def Adjacency(graph):
    index = 0  #Index of the sublist
    matrix = [[0]*len(graph)]*len(graph)
    print(matrix)  
    for sublist in graph:
        for value in sublist:
            print(value)
            matrice[index][value] = 1
        index+=1

    print(matrix)

Adjacence(graphe1) 

预期的输出应该是

[[1 0 1 1 1]
 [0 1 1 0 1]
 [1 0 1 1 1]
 [0 1 1 1 1]
 [1 0 1 0 1]] 

但是我得到了

[[1, 1, 1, 1, 1], 
[1, 1, 1, 1, 1], 
[1, 1, 1, 1, 1], 
[1, 1, 1, 1, 1], 
[1, 1, 1, 1, 1]]

我几乎可以肯定我忘记了一个小细节,但我无法弄清楚。 如果有人可以,我会很高兴。

【问题讨论】:

    标签: python graph


    【解决方案1】:

    你需要换行:

    matrix = [[0]*len(graph)]*len(graph)
    

    到:

    matrix = [[0]*len(graph) for i in range(len(graph))]
    

    这是因为当您以不同的方式创建数组时,它会以不同的方式存储它们,并且它们可以一次编辑多个值。尝试阅读this questionthis one

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      相关资源
      最近更新 更多