Lambda-Funktioner
Svep för att visa menyn
Lambda-funktioner är en central funktion i Python som gör det möjligt att skapa små, anonyma funktioner med en kortfattad syntax. Huvudsyftet med en lambda-funktion är att definiera en funktion på en enda rad, vanligtvis för korta, tillfälliga användningsfall där en fullständig funktionsdefinition med def skulle vara onödigt omständlig.
Lambda-funktioner används oftast tillsammans med högre ordningens funktioner som map, filter och sorted, där du behöver skicka en funktion som argument men inte vill definiera en fullständig funktion någon annanstans i din kod.
En lambda-funktion kan ta ett godtyckligt antal argument men får endast innehålla ett enda uttryck. Resultatet av detta uttryck returneras automatiskt. Även om lambda-funktioner är användbara för att skapa snabba, tillfälliga funktioner har de begränsningar: de kan inte innehålla flera satser, tilldelningar eller komplex logik, och de blir mindre läsbara om de används för mycket. På grund av dessa begränsningar bör lambda-funktioner användas för enkla uppgifter och vanliga funktioner föredras för mer komplexa operationer.
123numbers = [1, 2, 3, 4, 5] squared = list(map(lambda x: x ** 2, numbers)) print(squared)
Koden ovan använder en lambda-funktion tillsammans med den högre ordningens funktion map för att kvadrera varje tal i listan numbers. lambda x: x ** 2 definierar en anonym funktion som tar ett argument x och returnerar dess kvadrat. Detta tillvägagångssätt gör det möjligt att snabbt tillämpa en enkel operation på varje element i en lista utan att definiera en separat namngiven funktion, vilket gör koden mer koncis och fokuserad när funktionen bara behövs en gång.
123numbers = [1, 2, 3, 4, 5, 6] evens = list(filter(lambda x: x % 2 == 0, numbers)) print(evens)
Detta exempel använder en lambda-funktion med filter för att extrahera endast de jämna talen från listan numbers. Att använda en lambda-funktion här gör filtreringslogiken kortfattad och lättläst, särskilt när du bara behöver utföra en enkel kontroll utan att skapa en separat namngiven funktion.
1. Vad är den största skillnaden mellan en lambda-funktion och en vanlig funktion?
2. När bör du använda en lambda-funktion istället för def?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal