НачатьНачать бесплатно

Функция 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)
Редактировать и запускать код