De functie map()
Laten we wat gaan mappen!
Weet je nog hoe zip() werkt? Het voegt gegeven Iterables samen zodat items met dezelfde index in dezelfde tuple terechtkomen. Bovendien wordt de output beperkt door de kortste Iterable.
Je taak is om je eigen functie my_zip() te definiëren met *args die een variabel aantal Iterables voorstellen, bijv. lijsten, strings, tuples, enz. In plaats van een zip-object moet my_zip() meteen een lijst met tuples teruggeven.
Opmerking: eigenlijk zou je eerst moeten controleren of args Iterables bevatten. Voor de eenvoud slaan we dat hier over.
Deze oefening maakt deel uit van de cursus
Oefenen met coding-interviewvragen in Python
Oefeninstructies
- Haal de Iterable-lengtes
lengthsuitargsmetmap()en bepaal de minimale lengte. - Maak binnen de lus de
mappingmetmap()om de elementen inargsmet dezelfde indexiop te halen. - Zet de mapping om naar een tuple en voeg die toe aan de
tuple_list.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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)