Les funcions lambda en Python són una manera concisa de crear funcions petites i anònimes. Aquestes funcions són especialment útils quan es necessita una funció simple per a una operació ràpida i no es vol definir una funció completa amb def
.
Contingut
Què és una funció lambda?
Una funció lambda és una funció anònima que es defineix amb la paraula clau lambda
en lloc de def
. Aquestes funcions poden tenir qualsevol nombre d'arguments però només una expressió. La seva sintaxi és més curta i es fa servir principalment per a operacions senzilles.
Sintaxi de les funcions lambda
La sintaxi bàsica d'una funció lambda és:
lambda
és la paraula clau per definir una funció lambda.arguments
és una llista d'arguments separats per comes.expressió
és una única expressió que es calcula i retorna.
Exemple bàsic
Exemples pràctics
Exemple 1: Funció lambda per sumar dos números
Exemple 2: Funció lambda per calcular el quadrat d'un número
Exemple 3: Funció lambda amb condicional
Comparació amb funcions definides amb def
Les funcions lambda són útils per a operacions senzilles i ràpides, però tenen algunes limitacions en comparació amb les funcions definides amb def
:
Funció Lambda | Funció Definida amb def |
---|---|
Sintaxi curta i concisa | Sintaxi més llarga i detallada |
Només una expressió | Pot contenir múltiples expressions i statements |
No té nom (anònima) | Té un nom |
No pot contenir statements com return , pass , assert , etc. |
Pot contenir qualsevol statement de Python |
Exemple de funció definida amb def
Ús de funcions lambda amb funcions integrades
Les funcions lambda són sovint utilitzades amb funcions integrades com map()
, filter()
i sorted()
.
Exemple amb map()
numeros = [1, 2, 3, 4] quadrats = list(map(lambda x: x ** 2, numeros)) print(quadrats) # Sortida: [1, 4, 9, 16]
Exemple amb filter()
numeros = [1, 2, 3, 4, 5, 6] parells = list(filter(lambda x: x % 2 == 0, numeros)) print(parells) # Sortida: [2, 4, 6]
Exemple amb sorted()
parells = [(1, 2), (3, 1), (5, 0)] ordenats = sorted(parells, key=lambda x: x[1]) print(ordenats) # Sortida: [(5, 0), (3, 1), (1, 2)]
Exercicis pràctics
Exercici 1
Escriu una funció lambda que multipliqui dos números.
Exercici 2
Utilitza una funció lambda amb filter()
per obtenir tots els números imparells d'una llista.
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] imparells = list(filter(lambda x: x % 2 != 0, numeros)) print(imparells) # Sortida esperada: [1, 3, 5, 7, 9]
Exercici 3
Utilitza una funció lambda amb map()
per convertir una llista de temperatures en Celsius a Fahrenheit.
celsius = [0, 20, 30, 40] fahrenheit = list(map(lambda x: (x * 9/5) + 32, celsius)) print(fahrenheit) # Sortida esperada: [32.0, 68.0, 86.0, 104.0]
Conclusió
Les funcions lambda són una eina poderosa i concisa per crear funcions petites i ràpides en Python. Tot i que tenen algunes limitacions en comparació amb les funcions definides amb def
, són molt útils en combinació amb funcions integrades com map()
, filter()
i sorted()
. Practicar amb funcions lambda t'ajudarà a comprendre millor com i quan utilitzar-les de manera efectiva.
Curs de Programació en Python
Mòdul 1: Introducció a Python
- Introducció a Python
- Configuració de l'Entorn de Desenvolupament
- Sintaxi de Python i Tipus de Dades Bàsics
- Variables i Constants
- Entrada i Sortida Bàsiques
Mòdul 2: Estructures de Control
Mòdul 3: Funcions i Mòduls
- Definició de Funcions
- Arguments de Funció
- Funcions Lambda
- Mòduls i Paquets
- Visió General de la Biblioteca Estàndard
Mòdul 4: Estructures de Dades
Mòdul 5: Programació Orientada a Objectes
Mòdul 6: Gestió de Fitxers
- Lectura i Escriptura de Fitxers
- Treballant amb Fitxers CSV
- Gestió de Dades JSON
- Operacions amb Fitxers i Directoris
Mòdul 7: Gestió d'Errors i Excepcions
Mòdul 8: Temes Avançats
- Decoradors
- Generadors
- Gestors de Context
- Concurrència: Fils i Processos
- Asyncio per a Programació Asíncrona
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb unittest
- Desenvolupament Guiat per Proves
- Tècniques de Depuració
- Ús de pdb per a la Depuració
Mòdul 10: Desenvolupament Web amb Python
- Introducció al Desenvolupament Web
- Conceptes Bàsics del Framework Flask
- Construcció d'APIs REST amb Flask
- Introducció a Django
- Construcció d'Aplicacions Web amb Django
Mòdul 11: Ciència de Dades amb Python
- Introducció a la Ciència de Dades
- NumPy per al Càlcul Numèric
- Pandas per a la Manipulació de Dades
- Matplotlib per a la Visualització de Dades
- Introducció al Machine Learning amb scikit-learn