我是python新手,尝试从索引0-10、11-21等计算元素。然后我想取每十个索引值的平均值,然后找到平均值的最大值。我想,我的问题在于迭代和计算列表中每10个元素
dataGrowth =[2,3,4,5,1,34,4,2,5,6,7,6,4,545,3,434,2,1,2,4,6,723,1,3,547,47,4,23,3]
ddSMA = 10
for i in range(len(dataGrowth)):
if i >= 10:
currentVal = dataGrowth[i]
print(firstTenVals)
firstTenVals = dataGrowth[i-ddSMA : i]
maxVal = max(lastTenVals)
averageDrawDown = (currentVal - maxVal)/maxVal
我的列表输出只删除迭代后的第一个值
> [2, 3, 4, 5, 1, 34, 4, 2, 5, 6] [3, 4, 5, 1, 34, 4, 2, 5, 6, 7] [4, 5, > 1, 34, 4, 2, 5, 6, 7, 6] [5, 1, 34, 4, 2, 5, 6, 7, 6, 4] [1, 34, 4, 2, > 5, 6, 7, 6, 4, 545] [34, 4, 2, 5, 6, 7, 6, 4, 545, 3] [4, 2, 5, 6, 7, > 6, 4, 545, 3, 434] [2, 5, 6, 7, 6, 4, 545, 3, 434, 2] [5, 6, 7, 6, 4, > 545, 3, 434, 2, 1] [6, 7, 6, 4, 545, 3, 434, 2, 1, 2] [7, 6, 4, 545, > 3, 434, 2, 1, 2, 4] [6, 4, 545, 3, 434, 2, 1, 2, 4, 6] [4, 545, 3, > 434, 2, 1, 2, 4, 6, 723] [545, 3, 434, 2, 1, 2, 4, 6, 723, 1] [3, 434, > 2, 1, 2, 4, 6, 723, 1, 3] [434, 2, 1, 2, 4, 6, 723, 1, 3, 547] [2, 1, > 2, 4, 6, 723, 1, 3, 547, 47] [1, 2, 4, 6, 723, 1, 3, 547, 47, 4] [2, > 4, 6, 723, 1, 3, 547, 47, 4, 23]
您提供的代码甚至不应该工作,因为在调用变量时没有赋值
所以你的if语句是错误的。基本上,你要做的是每次i大于10时计算平均值,而不是每10个值计算平均值。以下是每十个值的计算方法:
如果要确定最大平均值,请将平均值保存在列表中并获取其最大值
我一点也不清楚您想做什么,但这里有一些代码可能会有所帮助
前十个值:
结果:
每十分之一值:
结果:
每十分之一值的平均值:
结果:
大概是这样吧:
输出:
它获取列表
d
,每n
个元素对该列表进行切片,并计算每个切片的平均值相关问题 更多 >
编程相关推荐