如何计算列表中的平均时间长度

时间:2017-02-16 19:40:39

标签: python csv

我试图弄清楚平均价格在一定范围内保持多长时间。让我说我的价值观是:

[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)

1 个答案:

答案 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