如何找到值相同的键(值也是字典)
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)
有一个图(请看例子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)