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
