2014-10-28 44 views
0

我有一个矩阵,如下所示:从矩阵蟒蛇形成一个边列表

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

我想形成一个边列表看起来像以下:

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

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

任何帮助将不胜感激。谢谢。

+0

你到底要什么? '[[0,2],[1,0,2],[2,1]]'/'[[0,2]],[2,[1] ]]'/'{0:2],1:[0,2],2:[1]}'/'[[2],[0,2],[1]]' – falsetru 2014-10-28 13:55:26

+0

我想要它这:{0:[2],1:[0,2],2:[1]} – lavish 2014-10-28 13:56:35

回答

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]} 
+0

这是完美的。谢谢你,先生。 – lavish 2014-10-28 14:12:26