从matrix-python形成边缘列表

时间:2014-10-28 13:52:00

标签: python list dictionary

我有一个如下所示的矩阵:

Matrix = [[0,0,1],
          [1,0,1],
          [0,1,0]]

我想形成一个边缘列表,如下所示:

Edge_list = {0: [2],
             1: [0, 2],
             2: [1]}

Edge_list中的第一列表示节点,下一列表示它具有边缘的节点(矩阵值为1)。

任何帮助都会受到赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

dict comprehensionlist comprehensionenumerate一起使用:

>>> matrix = [
...     [0,0,1],
...     [1,0,1],
...     [0,1,0],
... ]
>>>
>>> {i: [j for j, x in enumerate(row) if x] for i, row in enumerate(matrix)}
{0: [2], 1: [0, 2], 2: [1]}