加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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])

但这更有效.我明白了:

TypeError: argument 2 to map() must support iteration

解决方法

你对add()的定义至少是奇怪的(我倾向于称之为“错误”).你应该返回结果,而不是产生它:

def add(a,b):
    return a + b

现在,你的generator()会起作用

map(add,a2)

是一种更容易,更快速的方法(几乎)做同样的事情. (如果需要迭代器而不是列表,请使用itertools.imap()而不是map().)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读