Python,如何创建一个函数,它将函数作为参数与两个数组一起使用?
发布时间:2020-12-20 12:27:51 所属栏目:Python 来源:网络整理
导读:出于学习目的,我正在尝试使用 Python创建一个函数,它接受另一个函数和两个数组作为参数,并在每个数组参数的每个索引上调用函数参数.所以这应该调用add on a1 [0] a2 [0],a1 [1] a2 [1],等等.但我回来的只是一个生成器对象.怎么了? def add(a,b): yield a +
出于学习目的,我正在尝试使用
Python创建一个函数,它接受另一个函数和两个数组作为参数,并在每个数组参数的每个索引上调用函数参数.所以这应该调用add on a1 [0]& a2 [0],a1 [1]& a2 [1],等等.但我回来的只是一个生成器对象.怎么了?
def add(a,b): yield a + b def generator(add,a1,a2): for i in range(len(a1)): yield add(a1[i],a2[i]) g = generator(add,a2) print g.next() 我也试过替换上面的产量 yield map(add,a1[i],a2[i]) 但这更有效.我明白了:
解决方法
你对add()的定义至少是奇怪的(我倾向于称之为“错误”).你应该返回结果,而不是产生它:
def add(a,b): return a + b 现在,你的generator()会起作用 map(add,a2) 是一种更容易,更快速的方法(几乎)做同样的事情. (如果需要迭代器而不是列表,请使用itertools.imap()而不是map().) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |