Verrunden von Dezimalstellen in verschachtelten Datenstrukturen in Python

9

Ich habe ein Programm, das sich mit verschachtelten Datenstrukturen beschäftigt, wobei der zugrunde liegende Typ normalerweise eine Dezimalzahl ist. z.B.

%Vor%

Gibt es eine einfache pythonische Methode, um eine solche Variable zu drucken, aber alle Floats auf (sagen wir) 3dp zu runden und keine bestimmte Konfiguration von Listen und Wörterbüchern zu übernehmen? z.B.

%Vor%

Ich denke so etwas wie pformat(x,round=3) oder vielleicht

%Vor%

außer ich glaube nicht, dass sie diese Art von Funktionalität haben. Eine permanente Rundung der zugrunde liegenden Daten ist natürlich keine Option.

    
acrophobia 16.08.2011, 09:40
quelle

3 Antworten

4

Dies wird rekursiv Dictices, Tupel, Listen usw. absteigend formatieren und andere Dinge in Ruhe lassen.

%Vor%

Wenn Sie versuchen möchten, alles in ein Float zu konvertieren, können Sie

tun %Vor%

anstelle der letzten drei Zeilen der Funktion.

    
agf 16.08.2011, 10:15
quelle
1

Ein einfacher Ansatz unter der Annahme, dass Sie Float-Listen haben:

%Vor%     
zeekay 16.08.2011 10:29
quelle
0
%Vor%

Das Problem Hier haben wir keine flatten Methode in Python, da ich weiß, dass es nur 2-Ebenen-Listenverschachtelung ist, habe ich for loop verwendet.

    
Kracekumar 16.08.2011 10:10
quelle