我正在努力在字典中舍入浮动值。要生成我使用的字典:
[{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}]
答案 0 :(得分:7)
这是一种相当简单的方法。但是,.7000将只是.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}]
<强>截断情形强>
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.700000
中的额外0,这就是为什么它仍然显示为0.7
而不是0.70
。
答案 1 :(得分:0)
为了简洁,我们可以牺牲一些可读性:
[{k: round(v, 2) for k, v in dct.items()} for dct in P]