我想创建一个数据结构,可以存储一个顶点的名称,它与顶点相邻的边的权重。我想创建一个dict来将一个顶点映射到一个list中,这个dict进一步具有Adj_vertex2来存储它与边权重相邻的顶点。
换句话说:

D = {
    vertex1: [
        {
            Adj_vertex1: edge weight
        },
        {
            Adj_vertex2:    edge weight
        }
    ]
}

有什么有效的方法可以做到这一点吗?另外,如果使用上述结构,如何访问?

最佳答案

字典工作得很好,除非你有更复杂的结构。但是您正在为顶点声明字典列表。你可以这样简化它;

D = { vertex1: {Adj_vertex1: edge_weight, Adj_vertex2: edge_weight}}

得到这样的体重;
D[vertex1][Adj_vertex2]

或者,如果你想得到一个默认值,如果一个顶点不是相邻的,因此在字典中不存在,你可以使用它(感谢侯赛因的评论):
D[vertex1].get(Adj_vertex2, 0)

添加一个新的顶点;
D[new_vertex] = {Adj_vertex1: edge_weight, Adj_vertex2: edge_weight}

10-06 05:08
查看更多