Функція map()
Спробуймо зробити трохи «мапінгу»!
Пам'ятаєте, як працює zip()? Вона об'єднує надані ітерабельні об'єкти так, що елементи з однаковим індексом потрапляють до одного кортежу. Крім того, результат обмежується найкоротшим ітерабельним об'єктом.
Ваше завдання — визначити власну функцію my_zip() з параметром *args, що позначає змінну кількість ітерабельних об'єктів, напр. списки, рядки, кортежі тощо. На відміну від об'єкта zip, my_zip() має одразу повертати список кортежів.
Примітка: варто було б спочатку перевіряти, чи містить args ітерабельні об'єкти. Але задля простоти ми це опустимо.
Ця вправа є частиною курсу
Практика співбесід із програмування на Python
Інструкції до вправи
- Отримайте ітерабельні довжини
lengthsзargs, використовуючиmap(), і знайдіть мінімальну довжину. - У циклі створіть
mapping, застосувавшиmap()для отримання елементів уargsз однаковим індексомi. - Перетворіть mapping на кортеж і додайте його до
tuple_list.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)