"Leere Listen " mir for Schleife erzeugen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
bob1704
User
Beiträge: 27
Registriert: Dienstag 5. März 2013, 21:28

bob1704 hat geschrieben:Das ist aber sowieso komisch gelöst, denn entweder sind die Werte in Spalte 8 eindeutig — dann braucht man die innere Schleife überhaupt nicht; oder die Werte können mehrfach vorkommen — dann würde für jedes Vorkommen aber völlig unnötigerweise die gleiche Aufwändige Berechnung jedes mal durchgeführt. Es kommt aber jedes mal das gleiche Ergebnis dabei heraus. Das macht keinen Sinn.
@BlackJack Ja der Grund für die innere Schleife war/ ist das es zu jeder ID mehrere Werte gibt.

Sprich in meinem File kommt jeden ID ca. 27 mal und hat jeweils andere Werte. (Wobei ich die Maxima aus den 27 benötige)
BlackJack

@bob1704: In der inneren Schleife hast Du doch dann aber das Maximum der 27 Werte 27 mal berechnet. Für jeden Wert einmal.
bob1704
User
Beiträge: 27
Registriert: Dienstag 5. März 2013, 21:28

@ BlackJack:
Wie würdest du ändern, hab im Moment leider keine Idee.....

Also wie gesagt, das ganze sind ca. 11000 ID´s , wobei jede ca. 27 mal vorkommt(mit verschiedenen axial/shear_value)...
Sprich das file besteht aus ca. 297000 Zeilen..!
BlackJack

@bob1704: Du hast doch jetzt schon eine Lösung von Sirius3.

Edit: Die Zahl noch mal auf Deinen ursprünglichen Ansatz bezogen bedeutet, das die innere Schleife 297.000²=88.209.000.000 also etwas mehr als 88 Milliarden mal durchlaufen werden muss. Das dauert dann in der Tat *etwas* länger.
bob1704
User
Beiträge: 27
Registriert: Dienstag 5. März 2013, 21:28

BlackJack hat geschrieben:@bob1704: Du hast doch jetzt schon eine Lösung von Sirius3.

Edit: Die Zahl noch mal auf Deinen ursprünglichen Ansatz bezogen bedeutet, das die innere Schleife 297.000²=88.209.000.000 also etwas mehr als 88 Milliarden mal durchlaufen werden muss. Das dauert dann in der Tat *etwas* länger.
^

Ja mit gehts auch eher darum meinen Ansatz , des Verständniss wegen, abzuänder bbzw. zu verbseeren....
BlackJack

@bob1704: Dein Ansatz ist ja im Grunde falsch, weil Du die selben ca. 11.000 Ergebnisse jeweils ca. 27 mal berechnest. Man würde da in einem ersten Schritt erst einmal die Daten auf die einzelnen IDs aufteilen, so dass man 11.000 IDs auf Listen abbildet, welche die 27 dazugehörigen Werte enthalten. Und davon berechnet man dann die Maximalwerte. Genau das macht der Code von Sirius3. Und zwar auf eine sehr einfache und direkte Art. Das sollte im Grunde selbsterklärend sein wenn man Wörterbücher im Allgemeinen und `collections.defaultdict` im Besonderen verstanden hat. Wobei das jetzt auch keine Hexerei ist. Das ist halt ein Wörterbuch das zu *jedem* Schlüssel einen Wert liefert. Entweder den Wert der vorher zugewiesen wurde, oder das Ergebnis eines Aufrufs der Funktion die beim erstellen des Wörterbuch-Objekts übergeben wurde.
Antworten