IniziaInizia gratis

Map() e le funzioni lambda

Finora hai utilizzato le funzioni lambda per scrivere funzioni brevi e semplici e per ridefinire funzioni con funzionalità semplici. Il miglior caso d'uso delle funzioni lambda, tuttavia, è quando vuoi che queste semplici funzionalità siano inserite in modo anonimo all'interno di espressioni più grandi. Ciò significa che la funzionalità non viene memorizzata nell'ambiente, a differenza di una funzione definita con def. Per capire meglio questa idea, utilizzerai una funzione lambda nel contesto della funzione map().

Ricordiamo dal video che map() applica una funzione su un oggetto, ad esempio una lista. Qui puoi utilizzare le funzioni lambda per definire la funzione che map() utilizzerà per elaborare l'oggetto. Ad esempio:

nums = [2, 4, 6, 8, 10]

result = map(lambda a: a ** 2, nums)

Qui puoi vedere che una funzione lambda, che eleva un valore a a potenza di 2, viene passata a map() insieme a un elenco di numeri, nums. L'oggetto mappa che risulta dalla chiamata a map() è memorizzato in result. Ora ti eserciterai nell'uso delle funzioni lambda con map(). Per questo esercizio, mapperai le funzionalità della funzione add_bangs() che hai definito negli esercizi precedenti su un elenco di stringhe.

Questo esercizio fa parte del corso

Introduzione alle funzioni in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Nella chiamata a map(), passa una funzione lambda che concatena la stringa '!!!' a una stringa item; passa anche l'elenco di stringhe, spells. Assegna l'oggetto mappa risultante a shout_spells.
  • Convertire shout_spells in un elenco e stampare l'elenco.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Create a list of strings: spells
spells = ["protego", "accio", "expecto patronum", "legilimens"]

# Use map() to apply a lambda function over spells: shout_spells
____ = map(____, ____)

# Convert shout_spells to a list: shout_spells_list
____

# Print the result
print(shout_spells_list)
Modifica ed esegui il codice