Как сравнить значения одних и тех же ключей из разных dict с процентами - PullRequest
0 голосов
/ 14 мая 2018

Попытка сравнить одинаковые значения ключей из двух разных dict. Если значения второго dict больше на 50%, чем значения первого dict, то в выходных данных должны отображаться только разные значения ключей.

first={'a': '0.1000', 'b': '0.2000', 'c': '0.2400'}
second={'a': '0.1000', 'b': '0.3000', 'c': '0.5000'}
desired = {'c': '5000'} # c is 50% bigger from first dict value

ниже мой код:

print({k: v for k, v in second.items() if int(v) > int(first[k]) * 1.5})

но получаю эту ошибку: TypeError: аргумент float () должен быть строкой или числом, а не NoneType Как это решить?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018
desired={}

for k, v in first.items():
    if (float(second[k])) > (1.5*float(first[k])):
        desired[k] = v

Предполагая, что у вас одинаковые ключи в первом и втором словарях.

0 голосов
/ 14 мая 2018

Вы неправильно анализируете это, strip "0." следующим образом:

first={'a': '0.1000', 'b': '0.2000', 'c': '0.2400'}
second={'a': '0.1000', 'b': '0.3000', 'c': '0.5000'}
print({k: v.lstrip("0.") for k, v in second.items() if int(v.lstrip("0.")) > int(first[k].lstrip("0.")) * 1.5})
{'c': '5000'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...