Was bedeutet : (Doppelpunkt) in Python?

2 Antworten

Der Doppelpunkt ist Teil des Lambdas:

lambda x:x[2]

Hier mal ein einfaches Beispiel.

So sieht ein Lambda allgemeiner aus:

lambda arguments : expression

In Deinem Fall ist varibale2 das Argument, z.B. ein Tupel, oder eine Sequenz, der Ausdruck variable2[1] greift auf das 2. Element des Tupels zu.

>>> t=(8,12,5,10,22,0,17)
>>> for x in enumerate (t):
...    print(x)
...
(0, 8)
(1, 12)
(2, 5)
(3, 10)
(4, 22)
(5, 0)
(6, 17)

enumerate erzeugt Dir eine Aufzählung aus Index und Element. Um jetzt das Minimum zu bestimmen, mußt Du Dir für jedes Paar das 2. Element anschauen. Das wird mit dem Lambda gemacht. Im konkreten Fall würde min nun (5,0) zurückliefern:

>>> min(enumerate(t),key=lambda x:x[1])
(5, 0)

und das angehängte Subscript extrahiert die Position:

>>> min(enumerate(t),key=lambda x:x[1])[0]
5
Cedric28 
Fragesteller
 31.10.2021, 15:54

Zurückgeliefert wird also der Wert des Ausdrucks? Zu früh rückfrage gestellt... habe es verstanden, vielen lieben Dank!

0
KarlRanseierIII  31.10.2021, 15:58
@Cedric28

Kein Thema, ich hatte ja noch ergänzt, im konkreten Fall soll halt einfach der Index des Minimums bestimmt werden. Interessant sind lambdas eben auch beim sortieren komplexer Strukturen, weil Du so den eigentlich Wert extrahieren kannst, bzw. alles was noch als Expression ausdrückbar ist.

1
lambda Parameter:Funktion

ist die Verwendung. also gibt

 lambda variable2:variable2[1])

das 2-te Element von variable2 zurück