【发布时间】:2019-05-08 20:31:58
【问题描述】:
我正在尝试在嵌套字典中对浮点值进行四舍五入,该字典也具有其他值。我看了这个帖子 - Rounding decimals in nested data structures in Python
尝试实现这样的功能:
import collections
import numbers
def formatfloat(x):
return "%.3g" % float(x)
def pformat(dictionary, function):
if isinstance(dictionary, dict):
return type(dictionary)((key, pformat(value)) for key, value in dictionary.items())
if isinstance(dictionary, collections.Container):
return type(dictionary)(pformat(value) for value in dictionary)
if isinstance(dictionary, numbers.Number):
return formatfunc(dictionary)
return dictionary
x={'a':[1.05600000001,2.34581736481,[8.1111111112,9.999990111111]],
'b':[3.05600000001,4.34581736481,[5.1111111112,6.999990111111]]}
pformat(x, formatfloat)
我收到此错误:
TypeError: pformat() missing 1 required positional argument: 'function'
答案被标记为正确,所以我想知道是否需要更改任何内容。这正是我希望为我的字典实现的。任何帮助表示赞赏!
【问题讨论】:
标签: python numpy dictionary