程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了嵌套字典中值的百分比大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决嵌套字典中值的百分比?

开发过程中遇到嵌套字典中值的百分比的问题如何解决?下面主要结合日常开发的经验,给出你关于嵌套字典中值的百分比的解决方法建议,希望对你解决嵌套字典中值的百分比有所启发或帮助;

我想获得以下形式的嵌套字典中值的百分比:

{'first': orderedDict([('Jan',2),('Feb',1)]),'second': orderedDict([('Jan',3),5)])}

预期的结果应该是:

{'first': orderedDict([('Jan',40%),16.6%)]),60%),83.3%)])}

以上结果应以百分比形式获得:对于键为'first'的字典:

Jan : 2/5 *100 = 40%
Feb: 1/6 *100 = 16.6%

对于键为 'second' 的字典:

Jan : 3/5 *100 = 60%
Feb: 5/6 *100 = 83.3%

解决方法

python 中的有序字典遵循普通字典的一些特征,您可以使用 .update('k': 'v') 更新值

for k,v in d.items(): v.update({'Jan': (v['Jan']/5)*100}) v.update({'Feb': (v['Feb']/6)*100})

,

上面的答案很不错,但是如果您想获得所有月份的总值,您可以尝试两次 for 循环,首先是对所有值求和,然后是更新更改,例如:

x={'first': orderedDict([('Jan',2),('Feb',1)]),'second': orderedDict([('Jan',3),5)])}

@R_807_10586@l = [0]*2
for k in x :
    for idx,month in enumerate(x[k]):
        @R_807_10586@l[idx] += x[k][month]

for k,v in x.items():
    for idx,month in enumerate(v) : 
        v.update({month:round((v[month]/@R_807_10586@l[idx])*100,2)})

print(X)

这将生成如下输出:

{'first': orderedDict([('Jan',40.0),16.67)]),60.0),83.33)])}

大佬总结

以上是大佬教程为你收集整理的嵌套字典中值的百分比全部内容,希望文章能够帮你解决嵌套字典中值的百分比所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: