Python 添加单个列表中的datetime.datetime

Python 添加单个列表中的datetime.datetime,python,list,datetime,python-3.6,nested-lists,Python,List,Datetime,Python 3.6,Nested Lists,我到处找了,似乎找不到我需要的东西。我有一个包含datetime的列表,我需要将其合并以找到总和。此列表从文件中解析,可以包含任意数量的日期时间项。举个例子,它看起来就是这样 [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.datet

我到处找了,似乎找不到我需要的东西。我有一个包含datetime的列表,我需要将其合并以找到总和。此列表从文件中解析,可以包含任意数量的日期时间项。举个例子,它看起来就是这样

[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

如果其他人遇到这个问题,这里是我使用的代码

time = [i[8] for i in smaller_list]
sumtime = datetime.timedelta()
for i in time:
    try:
        (h, m, s) = i.split(':')
        d = datetime.timedelta(hours=int(h), minutes=int(m), seconds=float(s))
    except ValueError:
        (m, s) = i.split(':')
        d = datetime.timedelta(minutes=int(m), seconds=float(s))
    sumtime += d
print(str(sumtime))
如果您正在学习python,那么试图将您的思维集中在日期时间和时间增量上是相当令人困惑的。对于持续时间,您需要使用timedelta。您必须将这些值拆分并将正确的值传递给时间增量,然后将它们相加以找到持续时间。希望这能帮助其他人

如果需要将微秒舍入到秒,可以使用此代码代替d

 d = datetime.timedelta(minutes=int(m), seconds=round(float(s)))

你的约会时间总和应该是什么样子?只需将年数、月数和其他数据加起来,你就可以知道公元7300年左右。这就是你想要的吗?你能解释一下你想要完成的总数背后的逻辑吗?@Kevin I更新了这个问题。通常是几分钟到几微秒,有时是几小时,那么为什么要使用datetimes而不是TimeDelta呢?那么我建议你阅读,它可能更适合你的任务。这不是编码,时间点(
datetime
date
)和持续时间(
timedelta
)之间的区别更一般。