Hat Python eine Kurzschrift für diese einfache Aufgabe?

7

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"?

    
trVoldemort 12.02.2012, 06:53
quelle

2 Antworten

19
%Vor%

Dieses Formular heißt "Listenverständnis" . In seiner Grundform besteht es aus 4 Teilen:

  1. 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;

  2. 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 ;

  3. gebunden
  4. Die Eingabeliste. Folgen Sie dem in Schlüsselwort, der Liste (oder anderen iterablen), von der Sie Ihre Elemente erhalten. In diesem Fall foo ;

  5. 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.

mgibsonbr 12.02.2012, 06:56
quelle
4

filter Funktion ist was du suchst:

%Vor%

Der Ausdruck lambda x: x % 2 == 1 entspricht grundsätzlich

%Vor%     
Eser Aygün 12.02.2012 07:07
quelle

Tags und Links