In Python Lambda ist ein Schlüsselwort verwendet anonyme Funktionen (Funktionen ohne Namen), und das ist zu definieren, warum sie als Lambda-Funktionen bekannt sind.
Grundsätzlich ist es für die Definition anonyme Funktionen verwendet, die nichtArgument kann/können (s) und kehrt Wert von Daten/Ausdruck. Lassen Sie uns ein Beispiel sehen.
>>> # Defining a lambda function that takes 2 parameters(as integer) and returns their sum
...
>>> lambda num1, num2: num1 + num2
<function <lambda> at 0x1004b5de8>
>>>
>>> # Let's store the returned value in variable & call it(1st way to call)
...
>>> addition = lambda num1, num2: num1 + num2
>>> addition(62, 5)
67
>>> addition(1700, 29)
1729
>>>
>>> # Let's call it in other way(2nd way to call, one line call)
...
>>> (lambda num1, num2: num1 + num2)(120, 1)
121
>>> (lambda num1, num2: num1 + num2)(-68, 2)
-66
>>> (lambda num1, num2: num1 + num2)(-68, 2**3)
-60
>>>
Nun lassen Sie mich eine Antwort Ihrer 2. Frage geben. Die 1st Antwort ist auch großartig. Dies ist meine eigene Art, dies mit einem anderen Beispiel zu erklären.
Angenommen, haben wir eine Liste der Elemente (ganze Zahlen und Strings mit numerischen Inhalt) wie folgt,
nums = ["2", 1, 3, 4, "5", "8", "-1", "-10"]
und ich möchte es sortieren sortiert() verwendet Funktion, können sehen, was das passiert.
>>> nums = ["2", 1, 3, 4, "5", "8", "-1", "-10"]
>>> sorted(nums)
[1, 3, 4, '-1', '-10', '2', '5', '8']
>>>
Es hat nicht mir geben, was ich erwartet, wie ich wie unten wollte,
['-10', '-1', 1, '2', 3, 4, '5', '8']
Das heißt, wir brauchen eine Strategie (so dass unsere Schnur Gegenstände behandeln sortiert könnte als ein Ints), um dies zu erreichen. Aus diesem Grund wird das Schlüsselwort Schlüssel verwendet. Bitte sehen Sie sich den folgenden an.
>>> nums = ["2", 1, 3, 4, "5", "8", "-1", "-10"]
>>> sorted(nums, key=int)
['-10', '-1', 1, '2', 3, 4, '5', '8']
>>>
Ermöglicht Verwendung Lambda-Funktion als Wert Schlüssel
>>> names = ["Rishikesh", "aman", "Ajay", "Hemkesh", "sandeep", "Darshan", "Virendra", "Shwetabh"]
>>> names2 = sorted(names)
>>> names2
['Ajay', 'Darshan', 'Hemkesh', 'Rishikesh', 'Shwetabh', 'Virendra', 'aman', 'sandeep']
>>> # But I don't want this o/p(here our intention is to treat 'a' same as 'A')
...
>>> names3 = sorted(names, key=lambda name:name.lower())
>>> names3
['Ajay', 'aman', 'Darshan', 'Hemkesh', 'Rishikesh', 'sandeep', 'Shwetabh', 'Virendra']
>>>
Sie können Ihre eigene Funktion (aufrufbar) und bieten es als Wert Schlüssel definieren.
Lieber programers, ich habe den Code unten für Sie geschrieben, nur versuchen zu verstehen es und Kommentar Ihre Erklärung.Ich würde mich freuen, deine Erklärung zu sehen (es ist einfach).
>>> def validator(item):
... try:
... return int(item)
... except:
... return 0
...
>>> sorted(['gurmit', "0", 5, 2, 1, "front", -2, "great"], key=validator)
[-2, 'gurmit', '0', 'front', 'great', 1, 2, 5]
>>>
I Hoffnung es nützlich wäre.
'key' in diesem Fall ist ein Schlüsselwort Argument und hat nichts mit' Lambda' zu tun. – l4mpi
Sehen Sie dies: http://StackOverflow.com/Questions/8966538/Syntax-behind-sortedkey-Lambda – sachinjain024