如何找到值相同的键(值也是字典)

How to find keys whose values are the same (values are also dictionaries)

有一个图(请看例子here)我用字典来存储邻接矩阵:

{A:{B:a, C:a, D:a}, B:{A:a, E:b}, C:{A:a}, D:{A:a}, E:{B:b}}

其中大写字母是节点,小写字母是边。

我正在尝试查找具有相同邻接关系的节点(本例中为 C、D)。我该如何实施?改变邻接矩阵的数据结构就可以了。任何帮助将不胜感激。

如果我对你的问题的理解正确,那么如果你的数据类型是字典,这可能是你的解决方案:

    temp = {}
    for key, value in your_dictionary.items():
       temp.setdefault(value, set()).add(key)

如果你想从字典中检索具有相同值的键,那么你可以使用这个:

    res = [values for key, values in temp.items() if len(values) > 1]

您可以迭代该图,并针对每两个不同的节点使用 == 运算符检查它们的邻接细节是否相同。

graph = {
    'A': {'B': 'a', 'C': 'a', 'D': 'a'},
    'B': {'A': 'a', 'E': 'b'},
    'C': {'A': 'a'},
    'D': {'A': 'a'},
    'E': {'B': 'b'},
}

res = {}
for u, u_adj in graph.items():
    res.setdefault(u, [])
    for v, v_adj in graph.items():
        if u != v and u_adj == v_adj:
            res[u].append(v)
print(res)