Модуль 21. Задача 2. Свой zip 2

Написав аналог функции zip на собеседовании вы вспомнили, что этот код можно сделать даже лучше, и резко вырвали листок с кодом из рук работодателя, оставив его в прострации.

Напишите функцию, которая будет являться аналогом функции zip и сделайте так, чтобы программа работала с любыми итерируемыми типами данных.
Циклами (за исключением генераторов), условными операторами и функциями определения типа(isinstance или type) пользоваться нельзя.

Функция должна возвращать список с кортежами, в котором n-ый кортеж состоит из n-ых элементов всех последовательностей.
Например, десятый кортеж будет содержать десятый элемент каждой из переданных последовательностей.

Основной код оставьте пустым или закомментированным (используйте его только для тестирования).

Пример 1:

a = [{‘x’: 4}, ‘b’, ‘z’, ‘d’]
b = (10, {20,}, [30], ‘z’)

print(my_zip(a, b)) -> [({‘x’: 4}, 10), (‘b’, {20}), (‘z’, [30]), (‘d’, ‘z’)]

Пример 2:

a = [1, 2, 3, 4, 5]
b = {1: ‘s’, 2: ‘q’, 3: 4}
x = (1, 2, 3, 4, 5)

print(my_zip(a, b, x)) -> [(1, 1, 1), (2, 2, 2), (3, 3, 3)]

Решение:

Решение можно скачать с Boosty.to


Как можно отблагодарить:

  • Оформить удобную для вас подписку на Boosty.to
  • Разово поддержать через DonationAlerts
6300login-checkМодуль 21. Задача 2. Свой zip 2

Добавить комментарий