0

我想找到这个图的所有不重复的 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)一次

4

0 回答 0