将二维数组(邻接表)转换为字典 python

Converting a 2D array (adjacency list) into a dictionary python

我的邻接表是:

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

我想得到这个输出:

adjacency_dict = {0: [3, 4], 
                  1: [3], 
                  2: [3, 4], 
                  3: [0, 1, 2], 
                  4: [0, 2]}

我之前尝试过的所有解决方案都让我明白了 "TypeError: unhashable type: 'list'",我从概念上理解了为什么我明白了,但我无法将这种理解转化为实际编写解决方案。我对 Python 比较陌生,所以任何建议都会有所帮助。

试试这个:

adjacency_dict = {i: j for i,j in enumerate(Graph)}

adjacency_dict = {i:Graph[i] for i in range(len(Graph))}

从技术上讲,您尝试使用字典获得的结果与列表相同。

例如试试这个

>>>Graph[0][1]
//will print 4
>>>Graph[1][0]
//will print 3

但是如果你真的想用你描述的键将列表转换为字典,可以在下面的代码中完成:

adjacency_dict = {}
for idx, val in enumerate(Graph):
  adjacency_dict[idx] = val

虽然听写理解产生相同的结果,但我觉得这个更简洁:

adjacency_dict = dict(enumerate(Graph))