Habe ich eine Liste von Wörterbüchern wie folgt:
list = [ { 'a':'1' , 'b':'2' , 'c':'3' }, { 'd':'4' , 'e':'5' , 'f':'6' } ]
Wie wandle ich die Werte, die von jedem Wörterbuch in der Liste, int/float?
So wird es:
list = [ { 'a':1 , 'b':2 , 'c':3 }, { 'd':4 , 'e':5 , 'f':6 } ]
Dank.
InformationsquelleAutor der Frage siva | 2011-03-15
Gibt es ein casting als int und nicht als string.
InformationsquelleAutor der Antwort Jim
Gotta love Liste Verstehens.
(Bemerkung: für Python 2-code, den Sie verwenden können "iteritems" statt "Gegenstände")
InformationsquelleAutor der Antwort Powertieke
Wenn das Ihre genaue format, können Sie gehen Sie durch die Liste, und ändern Sie die Wörterbücher.
Wenn du hast etwas allgemeiner, dann müssen Sie irgendeine Art von rekursiven update auf das Wörterbuch. Überprüfen Sie, ob das element ist ein Wörterbuch, wenn es ist, verwenden Sie den rekursiven update. Wenn es in der Lage zu sein, umgewandelt in einen float oder int konvertieren und ändern Sie den Wert in das dictionary. Es gibt keine integrierte Funktion für dieses und es kann sehr hässlich (und nicht-pythonic, da es erfordert in der Regel den Aufruf isinstance).
InformationsquelleAutor der Antwort Jonathan Sternberg
Behandeln die Möglichkeit
int
float
und leeren string-Werten, würde ich die Verwendung einer Kombination aus einer Liste Verständnis, Wörterbuch Verständnis, zusammen mit bedingten Ausdrücken, wie gezeigt:Jedoch Wörterbuch-Verstehens waren nicht Hinzugefügt zu Python 2 bis version 2.7. Es kann noch getan werden, die in früheren Versionen als einen einzigen Ausdruck, hat aber geschrieben, mit der
dict
Konstruktor wie folgt aus:Beachten Sie, dass so oder so diese erstellt ein neues dictionary von Listen, statt zu ändern das original ein in-place - (was müsste anders gemacht werden).
InformationsquelleAutor der Antwort martineau
Wenn Sie möchten, entscheiden Sie sich für eine Lösung handeln "in place" konnten Sie einen Blick auf diese ein:
Btw, wichtigen Auftrag nicht erhalten, weil die Art, in standard-Wörterbüchern zu arbeiten, dh ohne die Vorstellung von Ordnung.
InformationsquelleAutor der Antwort Paolo
InformationsquelleAutor der Antwort raton