【发布时间】:2021-04-26 15:39:31
【问题描述】:
你好,我正在寻找这个:
假设我有这个。
a= {'OCC': 6, 'FFR': 90, 'DTY': 3139, 'UTY': 1861, 'VGY': 2175, 'DGG': 364,
'CCG': 37, 'OPTY': 80, 'SET': 666, 'WEK': 82, 'XAU': 56, 'ROD': 38, 'PLS': 206, 'DAFF': 2, 'C': 2}
b= [{'key': 'OCC', 'count': 3615, 'prob': 0},
{'key': 'FFR', 'count': 408, 'prob': 0},
{'key': 'DTY', 'count': 915, 'prob': 0},
{'key': 'UTY', 'count': 652, 'prob': 0},
{'key': 'VGY', 'count': 365, 'prob': 0},
{'key': 'UTY', 'count': 589, 'prob': 0},
{'key': 'DGG', 'count': 573, 'prob': 0},
{'key': 'DTY', 'count': 75, 'prob': 0},
{'key': 'UTY', 'count': 148, 'prob': 0},
{'key': 'UTY', 'count': 116, 'prob': 0},
{'key': 'CCG', 'count': 7503, 'prob': 0}]
我想知道我怎么可能得到这样的结果:如果 a 中的键存在于 b 中,那么执行 log(value of b) - log(value of a)。然后可能将其保存在键'prob'中。 (对于这个例子,让我们考虑字典 a 的第一个元素:键 OCC 存在于列表 b 的第一个字典中。我正在寻找如何在所有列表 b 中执行此操作并更新字典中的每个概率键b)
所以我会得到这样的东西: 日志(3615)-日志(6)=6.401087665364811 所以列表 b 的第一个字典中的概率应该更新为:
{'key': 'OCC', 'count': 3615, 'prob':6.401087665364811 }
【问题讨论】:
标签: python list dictionary probability logarithm