除以零浮点值的两个字典值
问题描述:
我有分裂误差的问题。我用两个dictionarie和我有其他字典来划分他们。但是有些值是0 ..我不想一个错误但我想除以零浮点值的两个字典值
我的两个字典:
probspam:
{0: [3.75199226626618e-79], 1: [1.0384638247478166e-25], 2: [3.876104531640006e-157]}
probham:
{0: [1.0143598477460146e-78], 1: [0.0], 2: [2.2740883119510355e-138]}
错误的功能:
def bayes (probspam, probham):
try:
lista={k: [probspam[k][0]/probham[k][0]] for k in probham}
except ZeroDivisionError:
k=0
return lista
我怎么知道我的系统,当probham[k]=0
,其应该为0来划分的结果,而不是给我:“ZeroDivisionError:由零浮动师”?
答
它,你在找什么?
def bayes (probspam, probham):
lista={k: [probspam[k][0]/probham[k][0] if probham[k][0] !=0 else .0] for k in probham}
return lista
或者,如果你需要0.0取代[0.0]作为一种价值
def bayes (probspam, probham):
lista={k: [probspam[k][0]/probham[k][0]] if probham[k][0] !=0 else .0 for k in probham}
return lista
列表/字典内涵是强大的! :)
答
尝试这种情况:
def bayes(probspam, probham):
lista = {}
for k in probham:
if probham[k][0] != 0:
lista[k] = [probspam[k][0]/probham[k][0]]
else:
lista[k] = [0.0]
return lista
LISTA = {K:[!probspam [K] [0]/probham [K] [0],如果probham [K] [0] = 0,否则,0.0]对于probham中的k} –