使用词典创建邻接列表

问题描述 投票:-2回答:1

问题是:图表可以通过列出每行一个链接在文件中表示,每个链接由一对节点表示。编写一个读取此类文件的函数,并返回该图的邻接列表(作为字典)。请注意,对于文件中的每一行A B,您的函数将需要将节点B插入到邻居列表A中,并将节点A插入到B的邻居列表中。可能的文件示例:

graph.txt
A B
A C
A D
B E
C D
C E 

我希望最终列表看起来像这样:

adjList = {
    A:    [B, C, D], 
    B:    [A, E],
    C:    [A, D, E], 
    D:    [A, C], 
    E:    [B, C], 
}
python breadth-first-search adjacency-list
1个回答
1
投票

您可以使用defaultdict来回答此问题。我编写了代码并且它正在运行,但您可能想先考虑它。

dictAdjacency=defaultdict(list)
with open('C:/graph.txt') as readObj:
    lines=readObj.readlines()
    for line in lines:
        tempList=line.rstrip('\n').split(' ')
        dictAdjacency[tempList[0]].append(tempList[1])
        dictAdjacency[tempList[1]].append(tempList[0])
print(dictAdjacency)

RESULT

defaultdict(<class 'list'>, 
{
  'A': ['B', 'C', 'D'], 
  'B': ['A', 'E'], 
  'C': ['A', 'D', 'E'], 
  'D': ['A', 'C'], 
  'E': ['B', 'C']
})
© www.soinside.com 2019 - 2024. All rights reserved.