Python 你如何将不符合';t把1加起来就是1?
如果你不知道钥匙的数量和名称,你如何将不等于1的概率转化为等于1的概率? 例如:Python 你如何将不符合';t把1加起来就是1?,python,python-3.x,Python,Python 3.x,如果你不知道钥匙的数量和名称,你如何将不等于1的概率转化为等于1的概率? 例如: a = {'g' = 0.1, 'b' = 0.05, 'u' = 0.15, 'i' = 0.2} 致: 您的目标是实现标准化:计算和并将所有元素除以该和: total_inv = 1.0/sum(a.values()) for key,val in a.items(): a[key] = val*total_inv 甚至更短(如所说)使用听写理解: 但是这将构建一个新的词典,因此对旧词典的引用不会更
a = {'g' = 0.1, 'b' = 0.05, 'u' = 0.15, 'i' = 0.2}
致:
您的目标是实现标准化:计算
和
并将所有元素除以该和:
total_inv = 1.0/sum(a.values())
for key,val in a.items():
a[key] = val*total_inv
甚至更短(如所说)使用听写理解:
但是这将构建一个新的词典,因此对旧词典的引用不会更新
在代码中,我们计算
1.0/sum(..)
,因为除法通常比乘法更昂贵,因此可以获得一些效率。您的目标是实现标准化:计算和并将所有元素除以该和:
total_inv = 1.0/sum(a.values())
for key,val in a.items():
a[key] = val*total_inv
甚至更短(如所说)使用听写理解:
但是这将构建一个新的词典,因此对旧词典的引用不会更新
在代码中,我们计算1.0/和(…)
,因为除法通常比乘法更昂贵,因此可以获得一些效率。以下是制作词典的答案,这应该可以解决您的问题:
a = {'g':0.1, 'b': 0.05, 'u':0.15, 'i': 0.2}
total = sum(a.values())
new_dict = dict((key, value/total) for (key, value) in a.items())
以下是制作词典的答案,这将解决您的问题:
a = {'g':0.1, 'b': 0.05, 'u':0.15, 'i': 0.2}
total = sum(a.values())
new_dict = dict((key, value/total) for (key, value) in a.items())
你是说?求和这些值并应用一个系数,使之和为1,并将其应用于所有键?你的意思是?求和值并应用一个系数,使之和为1,并将其应用于所有键?a={k:v*total_inv for k,v in a.items()}
a={k:v*total_inv for k,v in a.items()}
只需使用字典理解,无需复杂化。(参见Jean对另一个答案的评论)。zip(a.keys(),a.values())
是a.items()
,除非我们可能无法保证Py2b的订单。编辑了两个要点,并查看上面的帖子以获得更清晰的方法。只需使用字典理解,无需复杂化事情。(请参见Jean对另一个答案的评论)。zip(a.keys(),a.values())
是a.items()
,除非我们可能无法保证Py2的订单,两个好的点都经过了编辑,请参见上面的帖子以获得更清晰的方法。