我想找到这个图的所有不重复的 d 值的总和作为一个例子,(a2 a3)和(a3 a2)被认为是一次
graph = {
'a1': {'a2':{'d':4,'t':2,'c':10},'a3':{'d':2,'t':4,'c':40}},
'a2': { 'a3': {'d':1,'t':3,'c':20}, 'a4': {'d':5,'t':5,'c':60}},
'a3': { 'a4': {'d':8,'t':15,'c':1000}, 'a5': {'d':10,'t':17,'c':150}, 'a2': {'d':1,'t':3,'c':20}},
'a4': { 'a5': {'d':2,'t':4,'c':30},'a6': {'d':6,'t':9,'c':70}},
'a5': { 'a6': {'d':5,'t':5,'c':60},'a4': {'d':2,'t':4,'c':30}},
'a6': {'a4': {'d':6,'t':9,'c':70}}
}
这是我使用的方法
def getDistanceSum(graph):
d = 0
arrahsn = {}
for key, value in graph.items():
for i in value:
newkey = key+','+i
arrahsn[newkey] = value[i]['d']
print(key,i,value[i]['d'])
d += value[i]['d']
print(arrahsn)
return d
这是目前我得到总和的输出,那么有什么更容易做的事情来获得唯一键的总和吗?
{'a1,a2': 4, 'a1,a3': 2, 'a2,a3': 1, 'a2,a4': 5, 'a3,a4': 8, 'a3,a5': 10, 'a3,a2': 1, 'a4,a5': 2, 'a4,a6': 6, 'a5,a6': 5, 'a5,a4': 2, 'a6,a4': 6}
预期输出是唯一值的总和(例如,考虑 'a1,a3': 2 和 'a3,a2': 1)一次