首页 > 解决方案 > 函数内的迭代参数 - Python

问题描述

我正在构建一个接收“块”数据并迭代处理它们的函数。我的问题是如何保存下一次运行的最后一个参数,同时在第一次运行时仍然对其进行初始化。

例子:

def IterativeFunction(X):      #X is the received vector (chunk of data)

    for i in range(len(X)):
        Y[i] = 0.1 * X[i] + 0.9 * Xn1
        Xn1 = X[i]                     #This is the iterative part

     return(Y)

主函数将接收“Y”,然后发送下一个“块”。所以我需要 IterativeFunction 再次运行,并将“Xn”初始化为:“Xn1 = X[i](上次运行)”。我仍然需要在第一次运行时将 Xn1 初始化为“Xn1 = 0”。

建议
的解决方案:我当然可以返回“Xn1”并从“main”再次接收它,但我确信有更好的方法来实现这一点。

标签: pythonfunctionfilteriterationglobal

解决方案


感谢以上回答。我把你的想法结合到了这个:

def Main_function():

   #init
   Xn1 = 0
   
   #Code part
   ...code code code...

   call IterativeFunction( VectorX , Xn1)

   end 

def IterativeFunction( VectorX , Xn1):
   
   for i in range(len(X)):
      Y[i] = 0.1 * X[i] + 0.9 * Xn1
      Xn1 = X[i]                    
   return (Y , Xn1)

我的问题是关于实现这一目标的其他方法,比如全局参数?或者这是实现解决方案的最推荐方法?


推荐阅读