List Comprehension If Else
Okay, Leute, mal ehrlich. Wir müssen reden. Über List Comprehension. Und dieses ewige If Else-Ding.
Ich weiß, ich weiß. Manche lieben sie. Die List Comprehension. Sie ist kurz. Sie ist knackig. Sie ist... irgendwie cool, oder?
Aber ist sie wirklich so toll? Ich wage es zu bezweifeln. (Das ist meine unpopuläre Meinung, haltet euch fest!)
Nehmen wir mal an, wir wollen eine Liste mit geraden Zahlen von 1 bis 10. Der List Comprehension-Weg:
[x for x in range(1, 11) if x % 2 == 0]
Sieht schick aus, nicht wahr? Fast wie ein Zauberspruch. Aber verstehen wir das wirklich auf Anhieb? Oder müssen wir erst mal unseren inneren Programmierer-Flüsterer konsultieren?
Jetzt die ehrliche Wahrheit: Manchmal starre ich auf so eine List Comprehension und denke: "Was... genau... passiert hier?!"
Und dann ist da noch das If Else. Oh, das If Else. Es schleudert uns in eine Achterbahn der Entscheidungen. Und in List Comprehension sieht das Ganze dann so aus:
[ "gerade" if x % 2 == 0 else "ungerade" for x in range(1, 6)]
Puh. Wer hat das erfunden? Und warum?
Mal ehrlich, ist das nicht ein bisschen... kompliziert? Für so eine simple Aufgabe? Mir persönlich wird da schwindelig.
Ich weiß, ich weiß. Ich sollte die Eleganz und Kürze schätzen. Aber mein Gehirn schreit nach Klarheit! Nach Lesbarkeit! Nach... einem ganz normalen for-Loop!
Stell dir vor:
ergebnisse = []
for x in range(1, 6):
if x % 2 == 0:
ergebnisse.append("gerade")
else:
ergebnisse.append("ungerade")
Ja, es sind mehr Zeilen. Ja, es ist vielleicht nicht so "sexy". Aber hey, ich verstehe, was da abgeht! Und mein Kollege in sechs Monaten auch!
Vielleicht bin ich altmodisch. Vielleicht bin ich ein Programmier-Dinosaurier. Aber ich glaube, Lesbarkeit ist wichtiger als kurz und cool.
Die dunkle Seite des If Else in List Comprehension
Und was passiert, wenn die Logik komplexer wird? Wenn wir mehr als nur eine einfache If Else-Bedingung haben? Dann verwandelt sich die List Comprehension in ein unleserliches Monster!
Das Verschachtelungs-Desaster
Versucht mal, mehrere If Else-Anweisungen in eine List Comprehension zu quetschen. Ich garantiere euch: Ihr werdet es bereuen. Ihr werdet euren Code hassen. Und ihr werdet anfangen, mit eurem Computer zu streiten.
Ich habe es selbst erlebt. Stundenlang habe ich versucht, eine komplizierte List Comprehension mit verschachtelten If Else-Bedingungen zu debuggen. Am Ende habe ich aufgegeben und es mit einem ganz normalen for-Loop gemacht. Und plötzlich... alles hat funktioniert!
Manchmal ist weniger mehr. Manchmal ist die einfache Lösung die beste Lösung.
Lasst uns ehrlich sein: Nicht jeder Code muss ein Meisterwerk sein. Manchmal reicht es, wenn er funktioniert und lesbar ist. Und wenn das bedeutet, auf List Comprehension mit If Else zu verzichten, dann ist das eben so.
Mein Fazit (Achtung: Kontrovers!)
Ich sage nicht, dass List Comprehension schlecht ist. Sie hat ihren Platz. Aber dieses zwanghafte Drängen, alles in eine einzige Zeile zu quetschen, ist doch irgendwie... seltsam.
Manchmal ist es okay, ein paar Zeilen mehr zu schreiben. Manchmal ist es okay, nicht der coolste Programmierer im Raum zu sein. Manchmal ist es einfach okay, Code zu schreiben, den man auch versteht.
Also, das nächste Mal, wenn ihr vor der Wahl steht: List Comprehension mit If Else oder ein simpler for-Loop... denkt an mich. Denkt an diesen Artikel. Und wählt weise.
Und wenn ihr euch doch für die List Comprehension entscheidet? Dann viel Glück. Ihr werdet es brauchen.
