在字典中舍去浮点值
我很努力地整理字典中的浮点值。要生成我用的字典:在字典中舍去浮点值
[{i: x.count(i)/float(len(x)) for i in x} for x in l]
我的字典是:
P = [{'A': 0.700000000, 'B': 0.255555555}, {'B': 0.55555555, 'C': 0.55555555}, {'A': 0.255555555, 'B': 0.210000000, 'C': 0.2400000000}]
我需要:
P = [{'A': 0.70, 'B': 0.25}, {'B': 0.55, 'C': 0.55}, {'A': 0.25, 'B': 0.21, 'C': 0.24}]
这是一个相当简单的方法来做到这一点。然而,.7000将成为只是0.7
四舍五入
for dict_value in P:
for k, v in dict_value.items():
dict_value[k] = round(v, 2)
[{'A': 0.7, 'B': 0.26}, {'C': 0.56, 'B': 0.56}, {'A': 0.26, 'C': 0.24, 'B': 0.21}]
在0.700000
截断
for dict_value in P:
for k, v in dict_value.items():
dict_value[k] = float(str(v)[:4])
[{'A': 0.7, 'B': 0.25}, {'C': 0.55, 'B': 0.55}, {'A': 0.25, 'C': 0.24, 'B': 0.21}]
转换为字符串砍掉多余的0的,这就是为什么它仍然显示为0.7
而不是0.70
。
而你得到'0.56'而不是'0.55' – jonrsharpe
这是四舍五入的,并不是真的会切掉多余的数字。如果这是你想要的,你需要稍微修改代码来做到这一点。 – electrometro
我知道;请注意,我不是OP。 – jonrsharpe
你有没有考虑过使用'round'?已经有很多Q和AS了,你为什么认为*“在字典”*使它有什么不同?另外,为什么你用两个不同的版本标记 - 你实际使用的是哪一个? – jonrsharpe