Ich versuche, einige Werte eines großen Wörterbuchs mit Werten aus einem anderen Wörterbuch zu aktualisieren, in denen sie ähnliche Schlüssel haben (dasselbe Datum, aber in einem anderen Format). Der Prozess, den ich gerade nutze, ist zu langsam und ich möchte den Engpass reduzieren.
Dies ist meine aktuelle Lösung (schreibt das aktualisierte Diktat in eine Datei):
%Vor% Sie sollten die Methode update
verwenden, um Wörterbücher zusammenzuführen:
.
Im Moment iterieren Sie über d
für jeden Schlüssel in b
... was langsam ist. Sie können dies umgehen, indem Sie zwei Wörterbücher einrichten, die übereinstimmende Schlüssel haben (und gleiche Daten werden dasselbe hashen - vielleicht ist das coole Ding, das hier zu beachten ist, dass der datetime objects hash ist):
Ich habe gerade festgestellt, dass Sie nicht ziemlich ein Update durchführen, da nur die gemeinsamen Werte aktualisiert werden, sondern stattdessen (einmal durch wiederholtes Iterieren):
%Vor%Vorgeschlagene Änderungen:
.iteritems()
anstelle von .items()
. So wie Sie es haben, wird eine Liste von Paaren im Speicher erstellt und iteriert, was eine Verschwendung darstellt. b
und d
unterschiedlich ist. Ich schätze, Monat und Tag sind geschaltet? Wenn dies der Fall ist, können Sie immer noch große Einsparungen erzielen, indem Sie den Schlüssel d
berechnen und dann die Mitgliedschaft prüfen. Code mit Änderungen:
%Vor%Tags und Links python python-2.7 dictionary