--- EDIT 2 --- So bekomme ich die Frage, warum ich die Wörterbücher verwenden ?, diese Frage ist ein auf Follow-up dieser: csv file compression without using existing libraries in PythonIterate in 2 verschiedene Wörterbücher gleichzeitig in Python
I Need to komprimieren, um ein 500k csv-Datei (19 MB), und ich wählte Wörterbuch verwenden, um die Zecken in einer cSV-Datei und symbs in eine andere speichern zu können, um die Werte dekomprimieren
FRAGE: Wie iterieren ich die optimierte Art und Weise ? Dies ist nur ein Beispiel für 4 Zeilen, aber meine reale Datei hat 500 000 Zeilen und führt mich immer wieder durch die Liste.
Ich habe 3 Wörterbücher:
originalDict = {
0: ['6NH8', 'F', 'A', '0', '60541567', '60541567', '78.78', '20'],
1: ['6NH8', 'F', 'A', '0', '60541569', '60541569', '78.78', '25'],
2: ['6AH8', 'F', 'B', '0', '60541765', '60541765', '90.52', '1'],
3: ['QMH8', 'F', 'B', '0', '60437395', '60437395', '950.5', '1']
}
ticks = {0: '6NH8', 1: '6AH8', 2: 'QMH8'}
symbs = {0: 'F,A', 1: 'F,B'}
ich durch originalDict iterieren wollen und die "Ticks" ändern und dann die symbs bei index 1
und index 2
und entfernen Sie dann index 2
so, also
0: ['6NH8', 'F', 'A', '0', '60541567', '60541567', '78.78', '20']
wird:
[0, '0', '0', '60541567', '60541567', '78.78', '20']
Ich habe eine Zeit für eine Schleife durch Werte in originalDict gehen, und im Inneren, dass eine andere for-Schleife:
for values in originalDict.values():
for ticksKey, ticksValue in ticks.items():
if values[0] == ticksValue:
values[0] = ticksKey
#Change symbs and remove char combination
for symbsKey, symbsValue in symbs.items():
comprComb = values[1] + "," + values[2]
if comprComb == symbsValue:
values[1] = str(symbsKey)
#del values[4]
#del values[4]
del values[2]
ZUSÄTZLICHE INFORMATIONEN ZUSÄTZLICH: Der Grund, warum ich sie haben als Wörterbuch, weil die 500 000 Zeilen ist, Einige der Ticks treten mehr als einmal auf, also gebe ich ihnen einen int, der der Schlüssel im dict ist, also auch für das syms-Dictionary.
Wenn die Schlüssel "0, 1, 2" sind, warum sind das keine Listen? –
was meinst du? wie ich schon sagte, dies ist nur ein Beispiel für 4 Zeilen, die in diesem Fall haben 0,1,2 ... die Ticks und Symbs dict haben unterschiedliche Größe –
Rewrite 'syms' und' Ticks', so dass die Werte die Schlüssel und Sie müssen nicht iterieren, sondern können nur die richtigen Werte nachschlagen? –