Задача на пейтон! Задача 2. Свой zip 2 Написав аналог функции zip на собеседовании вы вспомнили, что этот код можно сделать даже лучше, и резко вырвали листок с кодом из рук работодателя, оставив его в прострации. Напишите функцию, которая будет являться аналогом функции zip и сделайте так, чтобы программа работала с любыми итерируемыми типами данных. Циклами (за исключением генераторов), условными операторами и функциями определения типа(isinstance или type) пользоваться нельзя. Функция должна возвращать список из пар кортежей. Основной код оставьте пустым или закомментированным (используйте его только для тестирования). Пример 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)] ```
def my_zip(*args):
length = min(len(element) for element in args)
tpl_list = [tuple(struct[i] for struct in map(list, args)) for i in range(length)]
return tpl_list