Написав аналог функции 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
