Getting the error AttributeError: 'datetime.datetime' object has no attribute 'timedelta' when trying to add some datetimes

Getting the error AttributeError: 'datetime.datetime' object has no attribute 'timedelta' when trying to add some datetimes

我想通过执行此内部 for 循环来获得总次数...但是我在这里似乎做错了什么,因为我收到错误 AttributeError: 'datetime.datetime' object has no attribute 'timedelta'...

from datetime import datetime, timedelta
N = int(input())
lista = []
for n in range(N):
    name = input()
    times = [datetime.strptime(m, '%S.%f') for m in input().split()]
    initialTime = datetime(1900,1,1,0,0,0)
    for m in times:
        initialTime += initialTime.timedelta(m)
    lista.append(initialTime)
print(lista)

我也给你一些样本数据:

5
Guilherme
20.252 20.654 20.602
Edison
24.000 24.024 23.982
Caetano
20.380 25.816 21.739
Geraldo
20.310 25.725 21.664
Luis
20.289 25.699 21.643

这是为了显示下面的结果

["1:01.508", "1:12.006", "1:07.935", "1:07.699", "1:07.631"]

在我看来,您正在尝试将三个“单圈”时间相加以获得每个条目的总时间。为此,您根本不需要 initialTime。您可以将所有时间条目转换为 timedelta 对象并使用 sum() 将它们相加。

在你的外循环中:

times = input().split()
for i in range(len(times)):
    t = datetime.strptime(times[i], '%S.%f')
    times[i] = timedelta(minutes=t.minute, seconds=t.second, microseconds=t.microsecond)
lista.append(sum(times, timedelta()))

输出将是 timedelta 个对象的列表。如果需要,可以使用 str() 轻松将它们转换为字符串。