Python list comprehension?
Hey, also ich habe ein script:
grades = [85, 42, 79, 90, 56, 61, 30]
passing_grades = [grade for grade in grades if grade >= 60]
print(passing_grades)
Aber bei passing_grades = [grade for grade in...], warum brauche ich das erste grade in dem Script, also was macht es genau, und ein bisschen erklären wäre echt nett.
Wenn jemand von euch übrigens gut in Python oder so ist, und aktiv hier ist, wäre es nett, wenn ihr mich auch adden könntet, damit falls ich fragen habe, euch auch fragen kann.
Danke schonmal im Vorraus!
2 Antworten
[ expression(target) for target in ITER <predicate> ]
Das Prädikat hat die Wirkung eines Filters, bei Dir ist es:
if grade >= 60
ITER ist ein iterable, also eien Liste, Tupel, ....
target ist dabei die Referenz auf das Objekt innerhalb des Iterables. durch die Benennung des Targets kann dieses dann im Prädikat und im vorderen Ausdruck referenziert werden.
expr(target)
Hier kann das Objekt noch nachverarbeitet werden, in Deinem Fall willst du es aber 'as-is' belassen.
Das erste grade gibt an, dass grade der Inhalt der Liste ist (könnte auch zb grade/2 sein). Dann die Definition von grade und die Bedingung.
Ich habe nur etwas Erfahrung mit Python, arbeite hauptsächlich mit Java. Kannst aber trotzdem Fragen wenn was ist, dass meiste sollte ich hinbekommen.