自动生成循环层数
当我量化分析测试策略时,经常需要循环来组合参数,观察变化。为了提高效率,减少不必要的时间投入(懒),特以递归为基础设计以下算法,根据参数自动生成循环的层数和参数的范围。
##代码
parameter=[-1,[0,4,0],[0,2,0]]#第一个参数控制循环层数不要动,之后每个列表结构为[循环的起始,循环的结束,现在参数的大小],列表的数量是循环的层数
def recursion():
if parameter[0]==-1:#初始化
parameter[0]=len(parameter)-1
if parameter[0]==0:#递归到最底层
#放置你的函数
print(parameter)
return#递归的返回
else:#往下继续递归
parameter[0]-=1
for a in range(parameter[len(parameter)-parameter[0]-1][0],parameter[len(parameter)-parameter[0]-1][1]):
parameter[len(parameter)-parameter[0]-1][2]=a
recursion()
if parameter[len(parameter)-parameter[0]-1][2]==parameter[len(parameter)-parameter[0]-1][1]-1:
parameter[0]+=1
recursion()
##算法图解
输出
[0, [0, 4, 0], [0, 2, 0]]
[0, [0, 4, 0], [0, 2, 1]]
[0, [0, 4, 1], [0, 2, 0]]
[0, [0, 4, 1], [0, 2, 1]]
[0, [0, 4, 2], [0, 2, 0]]
[0, [0, 4, 2], [0, 2, 1]]
[0, [0, 4, 3], [0, 2, 0]]
[0, [0, 4, 3], [0, 2, 1]]