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 arguments: expressió
  • 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

# Funció lambda que suma dos números
suma = lambda x, y: x + y
print(suma(5, 3))  # Sortida: 8

Exemples pràctics

Exemple 1: Funció lambda per sumar dos números

suma = lambda a, b: a + b
print(suma(10, 5))  # Sortida: 15

Exemple 2: Funció lambda per calcular el quadrat d'un número

quadrat = lambda x: x ** 2
print(quadrat(4))  # Sortida: 16

Exemple 3: Funció lambda amb condicional

major = lambda a, b: a if a > b else b
print(major(10, 20))  # Sortida: 20

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

def suma(a, b):
    return a + b

print(suma(10, 5))  # Sortida: 15

Ú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.

multiplica = lambda a, b: a * b
print(multiplica(3, 4))  # Sortida esperada: 12

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

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats