Seite 2 von 2
Re: Teilstring am Anfang des Textes suchen
Verfasst: Montag 16. April 2012, 12:50
von snafu
Nobuddy hat geschrieben:Code: Alles auswählen
artikelneu = (
[r[i] for i in [0, 1, 4, 5, 25]]
for r in my_reader(infile)
if tuple(r[:2]) not in artikelvergleich
)
Zum Verständnis!
Ist meine Annahme richtig, daß die Spaltendefinition von '[r
for i in [0, 1, 4, 5, 25]]' in 'my_reader(infile)' übernommen wird?
Also der Ablauf ist: `for`-Schleife über das Ergebnis von `my_reader(infile)`, wobei pro Iteration `r` neu gebunden wird. Danach wird die Bedingung aus der letzten Zeile für das jeweilige `r` überprüft und abhängig davon schließlich das `r` innerhalb der oberen Zeile benutzt, wo der Zugriff über den Index gemacht wird. Trifft die Bedingung für ein `r` in der letzten Zeile nicht zu, dann wird die LC in der ersten Zeile garnicht erst betreten.
Re: Teilstring am Anfang des Textes suchen
Verfasst: Montag 16. April 2012, 12:57
von AlphaX2
Hi,
ohne alles genau gelesen zu haben eine spontane Idee. Wenn die Daten sehr, sehr groß sind, könnte man es doch womöglich beschleunigen, wenn man die zu bearbeitenden Listen aufteilt und mit Rekursion untersucht. :K
AlphaX2
Re: Teilstring am Anfang des Textes suchen
Verfasst: Montag 16. April 2012, 13:46
von pillmuncher
sma hat geschrieben:Code: Alles auswählen
[r[i] for i in [0, 1, 4, 25]]
vs.
[r[0], r[1], r[4], r[25]]
vs.
Code: Alles auswählen
from operator import itemgetter
items = itemgetter(0, 1, 4, 25)
...
items(r)
Ist halt ein Tupel statt einer Liste.
Re: Teilstring am Anfang des Textes suchen
Verfasst: Montag 16. April 2012, 14:03
von snafu
Oder halt als Einzeiler:
Ist IMHO auch recht elegant gelöst damit.
Re: Teilstring am Anfang des Textes suchen
Verfasst: Montag 16. April 2012, 14:18
von BlackJack
@snafu: Naja, `itemgetter()` erstellt dabei jedesmal ein neues Funktionsobjekt das nach einmal benutzen wieder verworfen wird. Aber alle diese Objekte machen das gleiche.
Re: Teilstring am Anfang des Textes suchen
Verfasst: Montag 16. April 2012, 14:31
von snafu
@BlackJack: Ja, ist aber Geschmackssache, ob man das jetzt wirklich so schrecklich findet. Performancemäßig dürfte der Unterschied nicht auffallen. Wenn man wollte, könnte man bei deiner Lösung ja auch die Zahlenfolge cachen, damit nicht jedes Mal eine neue Liste angelegt wird.

Re: Teilstring am Anfang des Textes suchen
Verfasst: Montag 16. April 2012, 17:25
von Nobuddy
Hallo zusammen,
Danke für die vielen Infos und auch snafu, für die Erklärung.
Für den Anfang, bin ich wieder ein Schrittchen weiter, verdaue das stückchenweise ...
Grüße Nobuddy
Re: Teilstring am Anfang des Textes suchen
Verfasst: Dienstag 17. April 2012, 01:05
von Leonidas
AlphaX2 hat geschrieben:ohne alles genau gelesen zu haben eine spontane Idee. Wenn die Daten sehr, sehr groß sind, könnte man es doch womöglich beschleunigen, wenn man die zu bearbeitenden Listen aufteilt und mit Rekursion untersucht. :K
Wieso sollte das schneller sein? Wenn die Daten sehr groß sind, wird dein Stack sehr groß und irgendwann fliegst du in Python gegen das Rekursionslimit, also gerade für große Datenmengen ist Rekusion (in Python natürlich) nicht das Mittel der Wahl.