значение приращения в словаре на основе ключа в другом словаре - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть masterDict словарь с ключами от «1» до «8» со значениями, установленными на 0

{'1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0}

У меня также есть anotherDict, который я использую, чтобы найти ключсодержащее значение, ближайшее к другому значению (я делаю это несколько раз с разными значениями).

Примером одного из этих других значений будет value1 = 900

Пример anotherDict будет:

{'1': 74, '2': 938, '3': 28, '4': 10, '5': 100, '6': 33, '7': 45, '8': 99}

Код, который я использую, чтобы найти значение, наиболее близкое к value1 в anotherDict:

closestValue1 = key, value = min(anotherDict.items(), key=lambda (_, v): abs(v - value1))

В этом случае closestValue1возвращает:

{'2': 938}

Как мне взять и увеличить значение ключа 2 в masterDict на 1?

Таким образом, masterDict будет содержать:

{'1': 0, '2': 1, '3': 0, '4': 0, '5': 0, '6':0, '7':0, '8': 0}

1 Ответ

0 голосов
/ 15 ноября 2018
master_dict = {'1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0}
another_dict = {'1': 74, '2': 938, '3': 28, '4': 10, '5': 100, '6': 33, '7': 45, '8': 99}
target_val = 900
target_key, _ = min(another_dict.items(), key=lambda x: abs(target_value-x[1])) 
master_dict[target_key]+=1
print (master_dict)
...