我想创建一个数据结构来存储顶点的名称、与它相邻的顶点以及边权重。我想创建一个 dict
将一个顶点映射到一个 list
,该 list
进一步有 dict
来存储它与边缘权重相邻的顶点。
换句话说:
D = {
vertex1: [
{
Adj_vertex1: edge weight
},
{
Adj_vertex2: edge weight
}
]
}
有没有有效的方法来做到这一点?另外,如果我使用上面的结构,我该如何访问 Adj_vertex2
?
最佳答案
除非您有更复杂的结构,否则字典工作正常。但是你正在为你的顶点声明一个字典列表。你可以这样简化它;
D = { vertex1: {Adj_vertex1: edge_weight, Adj_vertex2: edge_weight}}
然后像这样得到adj_vertex2的权重;
D[vertex1][Adj_vertex2]
或者如果你想在一个顶点不与另一个顶点相邻时获得一个默认值,因此不存在于字典中你可以使用这个(感谢 Hossein 的评论):
D[vertex1].get(Adj_vertex2, 0)
然后像这样添加一个新的顶点;
D[new_vertex] = {Adj_vertex1: edge_weight, Adj_vertex2: edge_weight}
关于python - 使用字典和列表在 Python 中创建邻接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42824433/