【发布时间】:2018-06-07 16:22:20
【问题描述】:
我到处寻找,但似乎找不到我需要的东西。我有一个包含日期时间的列表,我需要将其组合起来以找到总和。此列表是从文件中解析出来的,其中可以包含任意数量的日期时间项。例如,它看起来像这样。
[datetime.datetime(1900, 1, 1, 1, 19, 42, 89000), datetime.datetime(1900, 1, 1, 2, 8, 4, 396000), datetime.datetime(1900, 1, 1, 0, 43, 54, 883000), datetime.datetime(1900, 1, 1, 0, 9, 13, 343000)]
我用来获取这个的代码是这样的
time = [i[8] for i in smaller_list]
try:
times = [datetime.datetime.strptime(x, "%H:%M:%S.%f") for x in time]
except ValueError:
times = [datetime.datetime.strptime(x, "%M:%S.%f") for x in time]
Time 从我创建的用于分隔数据行的更大嵌套列表中获取变量。我已经尝试过 datetime.datetime.combine() 但我不确定如何将其用于单个列表中的项目。我是否需要创建一个嵌套的日期时间列表并将它们总结起来?如何遍历此列表并将所有时间合并为一个总和?如果我必须创建一个嵌套列表,我该如何遍历它来累加时间?试图绕开这个问题。
当您打印时间时,这是返回的内容,因此示例列表可以直接帮助我。
[datetime.datetime(1900, 1, 1, 1, 19, 42, 89000), datetime.datetime(1900, 1, 1, 2, 8, 4, 396000), datetime.datetime(1900, 1, 1, 0, 43, 54, 883000), datetime.datetime(1900, 1, 1, 0, 9, 13, 343000)]
这就是最初的样子。我需要将这些时间加起来作为总时间。通常以分钟为单位,包括微秒,很少是小时。
25:21.442
09:52.149
28:03.604
27:12.113
【问题讨论】:
-
您的日期时间总和应该是什么样的?只需将年份和月份之类的东西加起来就可以得出公元 7300 年左右。这就是你想要的吗?
-
您能解释一下您想要执行的总和背后的逻辑吗?
-
@Kevin 我更新了问题。通常只需几分钟到几微秒,有时甚至几小时
-
那你为什么要使用日期时间而不是时间增量?
-
那么我建议您阅读docs.python.org/3/library/datetime.html#timedelta-objects,它可能更适合您的任务。这不是编码问题,时间点(
datetime、date)和持续时间(timedelta)之间的区别更普遍。
标签: python list datetime python-3.6 nested-lists