如何计算python中的平均时差?

时间:2018-12-14 13:42:34

标签: python date

我多次作为字符串:

"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,这是我想为自己做的第一个程序。

2 个答案:

答案 0 :(得分:2)

您有很多问题。我不会为您提供所有这些解决方案。只是一些提示,可以帮助您入门。

我想你知道...

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

因此,此任务中唯一复杂的步骤是如何计算列表中相邻项目之间的差异。我将向您展示。

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

例如,尝试以下操作(未测试的代码):

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:])]

现在calculate your mean value,您就完成了。

供参考:

答案 1 :(得分:0)

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

结果是518.3333333333334秒。