Python 3.x 在Python中将函数相乘

Python 3.x 在Python中将函数相乘,python-3.x,function,lambda,multiplication,Python 3.x,Function,Lambda,Multiplication,我现在正在使用Python,我有一个函数,我需要为不同的常数乘以它自己 e、 g.如果我有f(x,y)=x^2y+a,其中“a”是某个常数(可能是常数列表) 如果“a”是一个列表(大小未知,因为它取决于输入),那么如果我们说a=[1,3,7]我想做的操作是 (x^2y+1)*(x^2y+3)*(x^2y+7) 但推广到“a”中的n个元素。在Python中有没有一种简单的方法来解决这个问题,因为我想不出一种解决这个问题的好方法?如果“a”中的大小是固定的,那么看起来就容易多了,因为我可以单独定义

我现在正在使用Python,我有一个函数,我需要为不同的常数乘以它自己

e、 g.如果我有
f(x,y)=x^2y+a
,其中“a”是某个常数(可能是常数列表)

如果“a”是一个列表(大小未知,因为它取决于输入),那么如果我们说
a=[1,3,7]
我想做的操作是

(x^2y+1)*(x^2y+3)*(x^2y+7)

但推广到“a”中的n个元素。在Python中有没有一种简单的方法来解决这个问题,因为我想不出一种解决这个问题的好方法?如果“a”中的大小是固定的,那么看起来就容易多了,因为我可以单独定义函数,然后在新函数中将它们相乘,但由于大小不固定,这种方法不适合。有人有办法解决这个问题吗?

你可以numpy ftw,这很容易进入

import numpy as np
a = np.array([1,3,7])
x = 10
y = 0.2
print(x ** (2*y) + a)
print(np.sum(x**(2*y)+a))
输出:

[3.51188643 5.51188643 9.51188643]
18.53565929452874

老实说,我并没有得到太多的支持,我仍在试图找出如何使函数不重叠

a=[1,3,7]

for i in range(0,len(a)-1):
    def f(x,y):
        return (x**2)*y+a[i]
    def g(x,y):
        return (x**2)*y+a[i+1]
    def h(x,y):
        return f(x,y)*g(x,y)
f1= lambda y, x: h(x,y)
integrate.dblquad(f1, 0, 2, lambda x: 1, lambda x: 10)

我应该澄清的是,最终结果不能是浮动的,因为它需要在以后使用dblquad进行集成。

如果您是新手(欢迎!)请确保您通读了这篇文章。通常,您会在发布问题的同时发布您尝试的代码(意思是在请他人帮助您之前,您会尝试帮助自己)。这应该可以通过一个简单的函数来实现,但也许我遗漏了什么,也许如果您发布了您尝试的代码,它会澄清您的问题。Python允许您返回多个值,如果您想要的是什么?您不应该关心大小是否固定,这就是循环的原因。我已经在下面发布了我的代码,这不太管用。我的做法是否正确,或者您是否建议采用另一种方法?我应该澄清,答案不能是浮动的,因为它需要在以后使用DBLQUARD进行集成。检查我下面的代码(这是错误的,因为它没有做我需要它做的事情),如果你能评论一下这是正确的方法还是我应该尝试另一种方法,那就太好了。