在字典中为不同的键评估值

时间:2014-08-31 15:16:51

标签: python dictionary difference

我有一个嵌套字典,我希望获得每个值之间的差异。

locsOne = {1:[100], 2:[200], 3:[250]}

(这些值只是示例) 我尝试将abs( - )函数应用于每个键:value以获取每个键之间的距离并创建带有结果的字典。我希望格式化的结果如下:

locsTwo = {1:{2:100, 3:150}, 2:{1:100, 3:50}, 3:{1:150, 2: 50 }}

我目前的尝试是:

for i in range(len(listOne)):
    if abs(listOne[i] - listTwo[i]) >= 450:
        pass
    else:
        distances.append(abs(listOne[i] - listTwo[i]))

对如何做到这一点感到茫然。任何帮助将不胜感激。

修改

我检查循环中的差异是否大于450,以便丢弃/不包含任何大于450的值。

1 个答案:

答案 0 :(得分:0)

locsOne = {1:[100], 2:[200], 3:[250]}
locsTwo = {}
for k1 in locsOne:
    v1 = locsOne[k1][0]
    locsTwo[k1] = {k2: abs(v1 - locsOne[k2][0]) for k2 in locsOne
                   if k1 != k2 and abs(v1 - locsOne[k2][0]) <= 450}
print(locsTwo)

输出:

{1: {2: 100, 3: 150}, 2: {1: 100, 3: 50}, 3: {1: 150, 2: 50}}