Round off dict values to 2 decimals

前端 未结 6 1783
庸人自扰
庸人自扰 2021-01-16 11:29

I\'m having a hard time rounding off values in dicts. What I have is a list of dicts like this:

y = [{\'a\': 80.0, \'b\': 0.0786235, \'c\': 10.0, \'d\': 10.6         


        
6条回答
  •  情歌与酒
    2021-01-16 12:04

    Taking the best bits from a couple of other answers:

    class LessPrecise(float):
        def __repr__(self):
            return str(self)
    
    def roundingVals_toTwoDeci(y):
        for d in y:
            for k, v in d.items():
                v = LessPrecise(round(v, 2))
                print v
                d[k] = v
    
    >>> roundingVals_toTwoDeci(y)
    80.0
    10.0
    0.08
    10.67
    80.73
    10.78
    0.0
    10.0
    80.72
    10.0
    0.78
    10.0
    80.78
    10.0
    0.0
    10.98
    >>> s=json.dumps(y)
    >>> s
    '[{"a": 80.0, "c": 10.0, "b": 0.08, "d": 10.67}, {"a": 80.73, "c": 10.78, "b": 0.0, "d": 10.0}, {"a": 80.72, "c": 10.0, "b": 0.78, "d": 10.0}, {"a": 80.78, "c": 10.0, "b": 0.0, "d": 10.98}]'
    

提交回复
热议问题