Funkcja map()
Czas na trochę mapowania!
Czy pamiętasz, jak działa zip()? Scala ona podane obiekty iterowalne tak, że elementy o tym samym indeksie trafiają do tej samej krotki. Co więcej, wynik jest ograniczony przez najkrótszy obiekt iterowalny.
Twoim zadaniem jest zdefiniowanie własnej funkcji my_zip() z parametrem *args reprezentującym zmienną liczbę obiektów iterowalnych – np. list, łańcuchów znaków, krotek itp. Zamiast obiektu zip, funkcja my_zip() powinna od razu zwracać listę krotek.
Uwaga: w praktyce należałoby sprawdzić, czy elementy args są obiektami iterowalnymi, ale dla uproszczenia pomijamy ten krok.
To ćwiczenie jest częścią kursu
Ćwiczenie pytań na rozmowach kwalifikacyjnych z programowania w Pythonie
Instrukcje do ćwiczenia
- Pobierz długości
lengthsobiektów iterowalnych zargsza pomocąmap()i wyznacz minimalną długość. - Wewnątrz pętli utwórz zmienną
mapping, używającmap()do pobrania elementów zargso tym samym indeksiei. - Przekonwertuj mapowanie na krotkę i dołącz ją do
tuple_list.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)