Mal [:1] statt [0] versuchen?mzh hat geschrieben:ja, ich krieg schon mit, dass da ein IndexError auftritt, weil die Liste wohl leer sein wird, da es ja keine Zeichen auf einer leeren Zeile gibt. Es ist nicht split(), das scheitert, sondern split()[0] und ich weiss bis jetzt nicht, wie ich eine leere Zeile berücksichtigen kann (ich kann ja kein if statement in lambda einbauen oder doch?).Code: Alles auswählen
Traceback (most recent call last): File "/home/mzh/shellscripts/comp.py", line 21, in ? control = map(lambda x, y: x.split()[0] == y.split()[0], data1[:-1], data2[:-1]) File "/home/mzh/shellscripts/comp.py", line 21, in <lambda> control = map(lambda x, y: x.split()[0] == y.split()[0], data1[:-1], data2[:-1]) IndexError: list index out of range
@BlackJack: hier ist es also notwendig, den IndexError abzufangen. Mein Ziel ist es jedenfalls, das ganze ohne for-loop zu erledigen.
Vergleich von zwei Files
Danke, das ist sehr hilfreich.
[url=http://www.proandkon.com]proandkon.com[/url]
@mzh: Ansonsten muss man das ja auch nicht mit aller Gewalt in eine ``lambda``-Funktion quetschen wollen. In einer mit ``def`` definierten Funktion kann man mehr machen, zum Beispiel den Sonderfall mit einem ``if`` behandeln.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
die potentiellen Leerzeilen war ja auch das, was mich zu meinem Codebewegt hat. Da werden diese nämlich gekonnt ignoriert. . Na gut, Nachteile -> siehe oben.
Gruß, noisefloor
die potentiellen Leerzeilen war ja auch das, was mich zu meinem Codebewegt hat. Da werden diese nämlich gekonnt ignoriert. . Na gut, Nachteile -> siehe oben.
Gruß, noisefloor
Natürlich, da stimme ich voll zu... für mich ist es einfach eine gute Gelegenheit, die verschiedenen Sprachelemente von Python ein bisschen besser kennen zu lernen. Das war die Motivation für mich, das so zu versuchen.BlackJack hat geschrieben:@mzh: Ansonsten muss man das ja auch nicht mit aller Gewalt in eine ``lambda``-Funktion quetschen wollen. In einer mit ``def`` definierten Funktion kann man mehr machen, zum Beispiel den Sonderfall mit einem ``if`` behandeln.
@noisefloor: soweit ich das sehe, löst der Vorschlag von bords0 das Problem mit den Leerzeilen ebenfalls recht einfach
[url=http://www.proandkon.com]proandkon.com[/url]