我正在创建一个基于概率字典组成累积密度函数 (cdf) 的函数我面临一个奇怪的问题,即 x=x+y 的性能与 x=+y 不同
考虑
orgs_pdf= {"Sales":0.2,
"Marketing":0.2,
"IT":0.3,
"Manufacturing":0.25,
"Finances":0.05
}
变体 1:
def cdf(pdf):
result={}
cummdens=0
total=sum(pdf.values())
for n in pdf:
cummdens=cummdens+pdf[n]/total
result[n]=cummdens
return result
print(cdf(orgs_pdf))
输出 1:
{'Sales': 0.2, 'Marketing': 0.4, 'IT': 0.7, 'Manufacturing': 0.95, 'Finances': 1.0}
此输出符合预期
变体 2:
def cdf(pdf):
result={}
cummdens=0
total=sum(pdf.values())
for n in pdf:
cummdens=+pdf[n]/total
result[n]=cummdens
return result
print(cdf(orgs_pdf))
输出 2:
{'Sales': 0.2, 'Marketing': 0.2, 'IT': 0.3, 'Manufacturing': 0.25, 'Finances': 0.05}
输出只是复制 orgs_pdf 字典
两个函数的唯一区别是我cummdens=cummdens+pdf[n]/total在第一个和cummdens=+pdf[n]/total第二个中使用,理论上它们应该以相同的方式工作,但它们没有。任何想法为什么?