Ich habe gerade angefangen, die lang ersehnte Python-Sprache zu lernen. Ich habe vorher mit C gearbeitet. Und ich finde Python, wie eine moderne Skriptsprache bei verschiedenen Aufgaben sehr prägnant ist.
Also habe ich mich gefragt, ob ich eine Liste foo = [1, 2, 3, 4, 5]
habe, und ich möchte alle ungeraden Zahlen daraus in bar
auswählen. In C könnte ich eine Schleife verwenden und jede Zahl in foo
überprüfen und die benötigten Elemente in bar
kopieren. Was macht ihr diesen "Python-Style"?
Dieses Formular heißt "Listenverständnis" . In seiner Grundform besteht es aus 4 Teilen:
Was Sie in die Ausgabeliste aufnehmen möchten. Kann ein beliebiger Ausdruck sein, der die im zweiten Teil (unten) definierte (n) Variable (n) beinhaltet. In diesem Fall das Element x
, unmodifiziert;
Eine Variable oder ein Ausdruck, der ein Element der Eingabeliste angibt. Nach dem Schlüsselwort für wird jedes Element der Liste an diese Variable gebunden (wenn Ihre Liste komplexe Objekte enthält, können Sie Destrukturierungsauftrag , um sich nur auf bestimmte Teile davon zu beziehen. In diesem Fall ist jeder Eintrag der Liste an x
;
Die Eingabeliste. Folgen Sie dem in Schlüsselwort, der Liste (oder anderen iterablen), von der Sie Ihre Elemente erhalten. In diesem Fall foo
;
Eine Bedingung, die das Element erfüllen muss, um in das Ergebnis aufgenommen zu werden (optional). Falls vorhanden, fügen Sie das Schlüsselwort if gefolgt von einem Ausdruck hinzu, um zu bestimmen, ob dieses Element in die Ausgabeliste aufgenommen wird oder nicht. In diesem Fall wird es sein, wenn die Zahl ungerade ist.
filter
Funktion ist was du suchst:
Der Ausdruck lambda x: x % 2 == 1
entspricht grundsätzlich
Tags und Links python