La fonction map()
Passons au mapping !
Vous souvenez-vous du fonctionnement de zip() ? Cette fonction fusionne les itérables fournis de sorte que les éléments ayant le même indice se retrouvent dans le même tuple. De plus, la sortie est limitée par l’itérable le plus court.
Votre tâche est de définir votre propre fonction my_zip() avec *args pour représenter un nombre variable d’itérables (par exemple des listes, des chaînes de caractères, des tuples, etc.). Plutôt que de renvoyer un objet zip, my_zip() doit directement renvoyer une liste de tuples.
Remarque : idéalement, il faudrait commencer par vérifier que args contient bien des itérables. Nous l’omettons ici pour simplifier.
Cet exercice fait partie du cours
<cours>S’exercer aux questions d’entretien de code en Python</cours>Instructions de l’exercice
- Récupérez l’itérable
lengthsà partir deargsen utilisantmap()et trouvez la longueur minimale. - Dans la boucle, créez le
mappingavecmap()pour récupérer les éléments deargsayant le même indicei. - Convertissez le mapping en tuple et ajoutez-le à
tuple_list.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)