Это задача:
Сделать функцию my_map_k
, которая в качестве аргумента принимает функцию f и k
перечисляет L 1 , ..., L k , для произвольного k ≥ 1, и возвращает список
[F (L 1 [0], ..., L к [0]), ..., F (L 1 [п-1 ], ..., L k [n-1])], где n - длина
кратчайшего списка L i .
Совет. Используйте нотацию Python *
для обработки произвольного числа списков в качестве аргументов.
Пример:
my_map_k(lambda x, y, z: x*y*z, [3, 2, 5], [2, 7, 9], [1, 2])
должен вернуть [6, 28]
.
Вот как далеко я продвинулся, но я застрял.
def my_map_k(f, *L):
n = len(min(*L, key=len))
x=0
while x < n:
return [f(*L[x],) for x in L]
my_map_k(lambda x, y, z: x*y*z, [3, 2, 5], [2, 7, 9], [1, 2])
Проблема в том, что я не могу просто сказать, что есть 3 списка, потому что их может быть больше. Более того, я не понимаю, как вычеркнуть первый элемент из всех трех списков.