Python 如何使用列表理解将函数列表应用于参数列表

Python 如何使用列表理解将函数列表应用于参数列表,python,list-comprehension,Python,List Comprehension,我有一个函数,它创建了一个新数组,其中每个项都是函数列表中函数f(x)的结果。 例如, x=[1,2,3] 函数间=[f1、f2、f3] 我希望结果是y=[f1(x[0]),f2(x[1]),f3(x[2])] 第一个函数工作正常,但是,我想使用列表理解来完成这个过程,这样我的代码就不会那么慢了。根据我的基本技能,我尝试使用第二个函数,它只返回一个项目,我无法理解这个列表理解如何处理多个列表,有人能向我解释一下吗 第一个功能 def makeNewYaxisLstofArrays(newXaxi

我有一个函数,它创建了一个新数组,其中每个项都是函数列表中函数f(x)的结果。
例如,
x=[1,2,3]
函数间=[f1、f2、f3]
我希望结果是y=[f1(x[0]),f2(x[1]),f3(x[2])]
第一个函数工作正常,但是,我想使用列表理解来完成这个过程,这样我的代码就不会那么慢了。根据我的基本技能,我尝试使用第二个函数,它只返回一个项目,我无法理解这个列表理解如何处理多个列表,有人能向我解释一下吗
第一个功能

def makeNewYaxisLstofArrays(newXaxisListofArray,lstInterFuncs):        
    for f in lstInterFuncs:
        data = []   
        for x in newXaxisListofArray:
            data.append(f(x))
    return data
def makeNewYaxisLstofArrays(newXaxisListofArray,lstInterFuncs):
    for f in lstInterFuncs:
        data = [f(x)for x in newXaxisListofArray]
        for x in newXaxisListofArray:            
    return data
尝试使用列表理解

def makeNewYaxisLstofArrays(newXaxisListofArray,lstInterFuncs):        
    for f in lstInterFuncs:
        data = []   
        for x in newXaxisListofArray:
            data.append(f(x))
    return data
def makeNewYaxisLstofArrays(newXaxisListofArray,lstInterFuncs):
    for f in lstInterFuncs:
        data = [f(x)for x in newXaxisListofArray]
        for x in newXaxisListofArray:            
    return data
使用
zip

x= [1,2,3]
interFunctions = [f1,f2,f3]

y = [f(arg) for f, arg in zip(interFunctions, x)]
使用
zip

x= [1,2,3]
interFunctions = [f1,f2,f3]

y = [f(arg) for f, arg in zip(interFunctions, x)]

我认为您的代码有误,但我猜您想写:

def makenewyaxisltofarray(newXaxisListofArray,lstinfluncs):
对于LSTInfuncs中的f:
数据=[f(x)表示新XaxisListofArray中的x]
#对于newXaxisListofArray中的x:它可以同时迭代两个(或更多)列表,并将它们打包成一个元组:

def makenewyaxisltofarray(newXaxisListofArray,lstinfluncs):
数据=[f(x)表示f,zip中的x(lstinfluncs,newXaxisListofArray)]
返回数据

代码将同时迭代函数和值,因此您将得到
[f1(x1),f2(x2),…]

我认为您的代码中有一个输入错误,但我猜您想写:

def makenewyaxisltofarray(newXaxisListofArray,lstinfluncs):
对于LSTInfuncs中的f:
数据=[f(x)表示新XaxisListofArray中的x]
#对于newXaxisListofArray中的x:它可以同时迭代两个(或更多)列表,并将它们打包成一个元组:

def makenewyaxisltofarray(newXaxisListofArray,lstinfluncs):
数据=[f(x)表示f,zip中的x(lstinfluncs,newXaxisListofArray)]
返回数据
<>代码会同时迭代函数和值,所以你会得到<代码> [f1(x1),f2(x2),…] /c>>/p>你是否考虑过?你考虑过吗?