如何添加存储在 python 列表中的“%I:%M:%S”格式的 n 个 datetime.strptime

How can I add n number of datetime.strptime in "%I:%M:%S" format stored in a list in python

我有 n 个 datetime.strptime 项以 "%I:%M:%S" 格式存储在列表中

total_logs = ['0:00:12', '0:10:02', , , n]

如何添加它们?

我会使用 pandas 中的 Timedelta class 来做到这一点。

import pandas as pd

logs = ['0:00:12', '0:10:02']
r = pd.Timedelta(logs[0]) + pd.Timedelta(logs[1])
print(r)

输出:0 days 00:10:14

Python 的 datetime.timedelta 也可以完成这项工作,但它不能直接作用于字符串。您必须先使用 datetime.datetime.strptime 转换它们。

要对列表中的所有项目求和,您必须从一个起点开始,在下面的代码中是 r,然后遍历列表并添加到 r :

In [37]: r = pd.Timedelta(0)

In [38]: r
Out[38]: Timedelta('0 days 00:00:00')

In [39]: for item in logs:
    ...:     r += pd.Timedelta(item)
    ...:

In [40]: print(r)
0 days 00:10:14

整个想法的一句话是:sum(map(pd.Timedelta, logs), pd.Timedelta(0))