La funzione map()
Facciamo un po' di mapping!
Ti ricordi come funziona zip()? Unisce gli Iterable forniti in modo che gli elementi con lo stesso indice finiscano nella stessa tupla. Inoltre, l'output è limitato dall'Iterable più corto.
Il tuo compito è definire la tua funzione my_zip() con *args per indicare un numero variabile di Iterable, ad esempio liste, stringhe, tuple, ecc. Invece di restituire un oggetto zip, my_zip() deve restituire direttamente una lista di tuple.
Nota: in teoria bisognerebbe prima verificare che args contenga solo Iterable. Ma qui lo omettiamo per semplicità.
Questo esercizio fa parte del corso
Esercitarsi con le domande di colloquio di coding in Python
Istruzioni dell'esercizio
- Ricava l'Iterable
lengthsdaargsusandomap()e trova la lunghezza minima. - All'interno del ciclo, crea il
mappingusandomap()per recuperare gli elementi inargscon lo stesso indicei. - Converti il mapping in una tupla e aggiungila a
tuple_list.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
def my_zip(*args):
# Retrieve Iterable lengths and find the minimal length
lengths = list(map(____, ____))
min_length = ____
tuple_list = []
for i in range(0, min_length):
# Map the elements in args with the same index i
mapping = map(____, args)
# Convert the mapping and append it to tuple_list
tuple_list.append(____(____))
return tuple_list
result = my_zip([1, 2, 3], ['a', 'b', 'c', 'd'], 'DataCamp')
print(result)