Функция map()
Попрактикуемся с функцией map()!
Помните, как работает zip()? Она объединяет переданные итерируемые объекты так, чтобы элементы с одинаковым индексом оказались в одном кортеже. При этом длина результата ограничена самым коротким итерируемым объектом.
Ваша задача — реализовать собственную функцию my_zip() с параметром *args, принимающим произвольное количество итерируемых объектов: списков, строк, кортежей и т. д. В отличие от стандартной zip(), функция my_zip() должна возвращать не объект zip, а список кортежей.
Примечание: в полноценной реализации стоило бы проверить, что элементы args действительно являются итерируемыми объектами, но для простоты мы этот шаг пропускаем.
Это упражнение является частью курса
Практика задач для собеседования по программированию на Python
Инструкции к упражнению
- Получите итерируемый объект
lengthsизargsс помощьюmap()и найдите минимальную длину. - Внутри цикла создайте
mappingс помощьюmap(), чтобы извлечь изargsэлементы с одинаковым индексомi. - Преобразуйте результат отображения в кортеж и добавьте его в
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)