Округление десятичных знаков во вложенных структурах данных в Python

У меня есть программа, которая имеет дело с вложенными структурами данных, где базовый тип обычно оказывается десятичным . например

x={'a':[1.05600000001,2.34581736481,[1.1111111112,9.999990111111]],...}

Есть ли простой питонический способ напечатать такую ​​переменную, но округляя все числа с плавающей запятой до (скажем) 3dp и не предполагая определенной конфигурации списков и словарей? например

{'a':[1.056,2.346,[1.111,10.000],...}

Я думаю что-то вроде pformat (x, round = 3) или, может быть,

pformat(x,conversions={'float':lambda x: "%.3g" % x})

, но я не думаю, что у них есть такая функциональность. Постоянное округление базовых данных, конечно, не вариант.

9
задан acrophobia 16 August 2011 в 09:40
поделиться