这是任务:
制作一个函数
my_map_k
,将任意一个f≥1的函数f和k列出L 1,...,L k,并返回列表[f(L 1 [0],...,L k [ 0]),...,f(L 1 [n-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个列表,因为可能还有更多。此外,我看不到如何从所有三个列表中删除第一个元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句