我试图弄清楚平均价格在一定范围内保持多长时间。让我说我的价值观是:
[10, 7.7, 9.5, 15, 8.8, 9.3, 7.7, 16]
例如,当值介于8 - 9.9之间时,平均值在> 14之前(不向后)?
9.5天通过14天。在3天内8.8。在2天内9.3。 7.7天1天。所以平均值是(1 + 3 + 2 + 1)/ 4 = 1.75天。
我正在尝试创建一个程序,为我做计算,但我遇到了问题。
代码:
list = [10, 7.7, 9.5, 15, 8.8, 9.3, 7.7, 16]
def new_function()
for i in list:
while 8 < x < 9.99 (store index position as initial y);
when x becomes > 14 (take index position and subtract it from initial y to find length)
repeat for next i where 8 < x < 9.9
average = sum(length)/len(length)
print(average)
答案 0 :(得分:0)
一旦找到起始条目,就会在每个条目的列表中保留一个计数器,直到达到一个> 14
。此时,将找到的值添加到总计并重置运行。每次在循环周围添加一个计数器,如下所示:
data = [10, 7.7, 9.5, 15, 8.8, 9.3, 7.7, 16]
run = []
total_days = 0
total_entries = 0
for value in data:
if value > 14:
total_days += sum(run)
total_entries += len(run)
run = []
elif 8 < value < 9.99 or len(run):
run.append(0)
run = [value + 1 for value in run]
print total_days / float(total_entries)
给你:
1.75