尝试比较来自两个不同dict的相同键值,如果第二个dict值比第一个dict值大50%,则输出应仅显示不同的键值。
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' 怎么解决这个问题?
答案 0 :(得分:0)
desired={}
for k, v in first.items():
if (float(second[k])) > (1.5*float(first[k])):
desired[k] = v
假设您在第一个和第二个词典中使用相同的键。
答案 1 :(得分:-1)
您没有正确解析它,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'}