python - 如何计算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,这是我想为自己做的第一个程序。
解决方案
你有一堆问题。我不会为您提供所有这些的解决方案。只是提示让您入门。
我想你知道...
- ...如何将时间字符串转换为
datetime.datetime
对象, - ...如何计算两者之间的差异,即 a
datetime.timedelta
, - ...如何计算平均值(
datetime.timedelta
支持加法和除法int
)float
。
所以这个任务中唯一复杂的步骤是,如何计算列表中相邻项目之间的差异。我要给你看这个。
当你有一个项目列表时,你可以切片和压缩来生成一个迭代器来迭代列表中的相邻元素对。
例如,试试这个(未经测试的代码):
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:])]
现在计算你的平均值,你就完成了。
以供参考:
推荐阅读
- javascript - 如何链接和使用外部 JS 文件并在 ejs 文件中使用它?
- reactive-programming - RxPy:使用可变计数进行缓冲
- r - 如何从值大于 4 的现有变量创建新变量
- wordpress - 如何使用带有 SwiftUI 的 Rest API 获取 Wordpress 帖子的帖子 ID
- xml - How to remove empty when grouping?
- c++ - 在 unique_ptr 中包装没有移动构造函数的 C++ 对象?
- azure-data-explorer - Kusto Query 将结果转换到另一个表中
- abap - 如何使用 CRM_ORDER_MAINTAIN 创建服务票证?
- java - 命令失败,错误 13(未授权):'未授权
- laravel - Laravel nova:如何从自定义字段表单设置输入值