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()
轻松将它们转换为字符串。
我想通过执行此内部 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()
轻松将它们转换为字符串。