計算字典中日期之間的平均時間

我試圖計算(排序的、不同的)日期之間的平均時間。這些日期存儲在列表中,列表作為值保存在字典中(鍵是唯一標識符),如下所示:

my_dict = {'001':[datetime.date(2014, 7, 29), datetime.date(2014, 8, 1), datetime.date(2014, 8, 5), datetime.date(2014, 8, 13)], '002':[datetime.date(2014, 7, 29), datetime.date(2014, 8, 1), datetime.date(2014, 8, 5), datetime.date(2014, 8, 13)]...}

以下是我為此編寫的代碼:

for j,k in dicts.items():
    for i in range(0,len(k)):
        y = timedelta(days=0)
        x = k[i] - k[i-1]
        y = y + x
        n = len(k)
        score = y/n
        dicts.update({j:score})

然而,當我將得到的值與數據進行比較時,它們似乎不正確,但我不確定為什么會這樣。有人能告訴我我做錯了什么嗎?

編輯:不正確的意思是平均值不正確。例如,10008吐出“10008”:datetime.timedelta(days=33,秒=57600)。但這一日期分別為2012年11月25日、2013年3月30日和2013年7月9日,相隔33天以上。

? 最佳回答:

首先,時間上的平均差距等于第一個和最后一個差距除以差距數量。因此,如果你不需要其他任何東西,只需使用第一個和最后一個分開的區間數。例如,如果你有7/10、7/20和7/30,你的平均間隔是10天。如果你將7/20改為7/12,你平均還有10天的時間。

除此之外,如果您在工作時需要其他數據,以下是正確的循環:

my_dict = {'001':[datetime.date(2014, 7, 10), datetime.date(2014, 7, 20), datetime.date(2014, 7, 30)], '002':[datetime.date(2014, 7, 29), datetime.date(2014, 8, 1), datetime.date(2014, 8, 5), datetime.date(2014, 8, 23)]}
import datetime
for j,k in my_dict.items():
    y = datetime.timedelta(days=0)  # need to move outside of loop so you can increment y
    for i in range(1, len(k)):  # need to skip first one to only measure intervals
        x = k[i] - k[i-1]
        y += x
        n = len(k) - 1
        score = y/n
        my_dict.update({j:score})
print(my_dict)
主站蜘蛛池模板: 日本精品一区二区在线播放| 日韩免费视频一区二区| 无码人妻AⅤ一区二区三区水密桃| 国产成人精品一区二区三区无码| 综合无码一区二区三区四区五区| 99精品国产一区二区三区| 在线观看国产一区二区三区| 亚洲第一区香蕉_国产a| 久久久久国产一区二区| 日韩有码一区二区| 国产丝袜无码一区二区视频| 波多野结衣一区二区| 亚洲一区二区三区深夜天堂| 国产爆乳无码一区二区麻豆| 农村人乱弄一区二区| 国产美女av在线一区| 一区二区三区免费高清视频| 国产精品亚洲综合一区在线观看| 亚洲一区二区观看播放| 一区二区传媒有限公司| 亚洲高清日韩精品第一区| 亚洲福利一区二区三区| 亚洲一区二区三区国产精品无码| 亚洲成AV人片一区二区| 无码一区二区三区在线观看| 久久福利一区二区| 亚洲高清美女一区二区三区| 亚洲国产福利精品一区二区| 日韩一区二区超清视频| 日本一区二三区好的精华液| 日韩一区二区免费视频| 色一情一乱一伦一区二区三区 | 日本精品一区二区三区四区| 日韩伦理一区二区| 美女视频免费看一区二区 | 国产在线精品一区二区中文| 狠狠综合久久AV一区二区三区| 任你躁国产自任一区二区三区| 亚洲老妈激情一区二区三区| 老熟女五十路乱子交尾中出一区| 麻豆果冻传媒2021精品传媒一区下载|