我有一个如下所示的矩阵:
Matrix = [[0,0,1],
[1,0,1],
[0,1,0]]
我想形成一个边缘列表,如下所示:
Edge_list = {0: [2],
1: [0, 2],
2: [1]}
Edge_list中的第一列表示节点,下一列表示它具有边缘的节点(矩阵值为1)。
任何帮助都会受到赞赏。谢谢。
答案 0 :(得分:0)
将dict comprehension和list comprehension与enumerate
一起使用:
>>> 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]}