Seite 1 von 1

Dict min max Abfrage

Verfasst: Dienstag 9. Februar 2016, 18:26
von gerald123
Hey, köntte mir jemand folgendes Codefragment erklären? MIr ist klar, dass key bzw. value den größten Wert des dict. bzw. den entsprechenden key dazu liefern- ich denke ich verstehe auch das Konzept von Lamda-functions --> trotzdem ists mir nicht ganz klar.

Code: Alles auswählen

d["one"] = 12
d["two"] = 13
d["three"] = 14
key, value= max(d.iteritems(), key=lambda x:x[1])

und ebenfalls der Unterschied zu folgendem Code (wird verwendet, fals die Einträge von "d" gleich groß sind, da min und max nicht den gleichen Eintrag zurückgeben sollten.

Code: Alles auswählen

key, value= max(d.iteritems(), key=lambda x: (x[1], x[0]))
key1, value1= min(d.iteritems(), key=lambda x: (x[1], x[0]))
Vielen Dank.

Re: Dict min max Abfrage

Verfasst: Dienstag 9. Februar 2016, 18:46
von cofi
Der `key` Parameter von `max` bzw `min` gibt die Funktion an, anhand der die Elemente verglichen werden.

Im ersten Fall vergleicht man die Werte anhand des Wertes und im zweiten Fall anhand des Tupels von Wert und Schluessel.
Schau am besten mal in die Dokumentation von `max` bzw `min`.