首页 > 解决方案 > 如何计算python中的平均时间差?

问题描述

我有多次作为字符串:

"2018-12-14 11:20:16","2018-12-14 11:14:01","2018-12-14 11:01:58","2018-12-14 10:54:21"

我想计算所有这些时间之间的平均时间差。上面的例子是:

2018-12-14 11:20:16 - 2018-12-14 11:14:01 = 6 minutes 15 seconds
2018-12-14 11:14:01 - 2018-12-14 11:01:58 = 12 minutes 3 seconds
2018-12-14 11:14:01 - 2018-12-14 11:01:58 = 7 minutes 37 seconds

(375s+723s+457s)/3 = 518.3 秒 = 8 分 38.33 秒(如果我的手算正确的话。)

我有一个数组中的所有日期字符串。我认为很容易将其转换为时间戳,循环计算差异然后计算平均值?我刚开始学习python,这是我想为自己做的第一个程序。

标签: pythondate

解决方案


你有一堆问题。我不会为您提供所有这些的解决方案。只是提示让您入门。

我想你知道...

  • ...如何将时间字符串转换为datetime.datetime对象,
  • ...如何计算两者之间的差异,即 a datetime.timedelta
  • ...如何计算平均值(datetime.timedelta支持加法和除法intfloat

所以这个任务中唯一复杂的步骤是,如何计算列表中相邻项目之间的差异。我要给你看这个。

当你有一个项目列表时,你可以切片压缩来生成一个迭代器来迭代列表中的相邻元素对。

例如,试试这个(未经测试的代码):

l = range(10)
for i,j in zip(l, l[1:]):
    print(i, j)

然后构建一个包含差异的列表,例如,使用列表推导

deltas = [i-j for i,j in zip(l, l[1:])]

现在计算你的平均值,你就完成了。

以供参考:


推荐阅读