Python 使用链和组合_和_替换命令转换数组中的值

Python 使用链和组合_和_替换命令转换数组中的值,python,arrays,Python,Arrays,我有一个包含多个数组的数据集,每个数组有2个值 我想创建一个函数,它接受输入(数据集、度),并对每个数组执行一些转换。也就是说,对于数组[x,y],我想返回一个新数组[1,x,y,xy,(x^2)y,x(y^2),…,(x^degree)y,x(y^degree) 我尝试使用链将所有子数组作为一个数组返回,然后我将对该数组应用必要的变换,然后使用组合_和_替换将一个变换后的数组返回到子数组 如果我的问题不清楚,函数的一个例子是f(([1,2],[3,4]),2)。这将返回([1,1,2,2,4]

我有一个包含多个数组的数据集,每个数组有2个值

我想创建一个函数,它接受输入(数据集、度),并对每个数组执行一些转换。也就是说,对于数组[x,y],我想返回一个新数组[1,x,y,xy,(x^2)y,x(y^2),…,(x^degree)y,x(y^degree)

我尝试使用将所有子数组作为一个数组返回,然后我将对该数组应用必要的变换,然后使用组合_和_替换将一个变换后的数组返回到子数组


如果我的问题不清楚,函数的一个例子是f(([1,2],[3,4]),2)。这将返回([1,1,2,2,4],[1,3,4,12,36,48])。

我不确定这是否会产生您期望的输出,但应该非常接近:

def powers(x, y, degree): # we'll assume degree >= 1
    result= [1, x, y, x*y]
    for i in range(2, degree+1):
        result.append(x**i *y)
        result.append(y**i *x)
    return result

def f(arrays, degree):
    return [powers(arr[0], arr[1], degree) for arr in arrays]

恐怕我不太了解输出中的模式。第一个元素似乎是
x**0*y**0
x**1*y**0
x**0*y**1
x**1*y**1
x**2*y**1
,以及
x**1*y**2
,但是为什么序列中不包括
x**2*y**2
?如果度是呢de>3,会不会是预期的结果之一?很抱歉没有解释清楚。如果学位是3,(x^3)(y^2)不会是预期的结果之一。但是,(x^3)y和x(y^3)会。如果学位是4,(x^4)y和x(y^5)这将是预期输出的一部分。谢谢,这很有效。有没有关于如何使用组合_与_替换和链实现的想法?@itstoocold没有,我认为这些功能可能会使这变得不必要的复杂。