Funktionen map()
Nu ska vi arbeta med map()!
Kommer du ihåg hur zip() fungerar? Den slår ihop givna itererbara objekt så att element med samma index hamnar i samma tupel. Resultatet begränsas dessutom av det kortaste itererbara objektet.
Din uppgift är att definiera en egen funktion my_zip() med *args som representerar ett variabelt antal itererbara objekt, t.ex. listor, strängar, tuplar o.s.v. I stället för ett zip-objekt ska my_zip() returnera en lista av tuplar direkt.
Kommentar: Egentligen bör args kontrolleras för att säkerställa att de innehåller itererbara objekt, men vi utelämnar det här för enkelhetens skull.
Den här övningen är en del av kursen
Öva på kodningsintervjufrågor i Python
Övningsinstruktioner
- Hämta de itererbara längderna
lengthsfrånargsmed hjälp avmap()och finn den minimala längden. - Skapa i loopen
mappingmed hjälp avmap()för att hämta elementen iargsmed samma indexi. - Konvertera mappningen till en tupel och lägg till den i
tuple_list.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)