Python 列表中的日期时间对象
up代码的输出错误Python 列表中的日期时间对象,python,list,datetime,Python,List,Datetime,up代码的输出错误 #3. add times as field self.scheduled_transmitions = self.scheduled_transmitions_copy[:] self.scheduled_transmitions_copy = [] self.datetime_clock = start_datetime counter = 0 for scheduled_transmition in self.scheduled_transmitions: pr
#3. add times as field
self.scheduled_transmitions = self.scheduled_transmitions_copy[:]
self.scheduled_transmitions_copy = []
self.datetime_clock = start_datetime
counter = 0
for scheduled_transmition in self.scheduled_transmitions:
print(self.datetime_clock)
self.scheduled_transmitions[counter]["datetime"] = self.datetime_clock
self.datetime_clock = self.datetime_clock+datetime.timedelta(seconds=int(scheduled_transmition["duration_in_seconds"]))
self.scheduled_transmitions_copy.append(self.scheduled_transmitions[counter])
counter = counter + 1
print("------------")
self.scheduled_transmitions = self.scheduled_transmitions_copy[:]
self.scheduled_transmitions_copy = []
for scheduled_transmition in self.scheduled_transmitions:
print(scheduled_transmition["datetime"])
return 1
但最后一个没有
为什么?
第一个代码的输出(错误):
秒代码的输出
2020-11-08 18:05:20.054000
2020-11-08 18:06:48.054000
2020-11-08 18:08:16.054000
2020-11-08 18:09:44.054000
2020-11-08 18:11:12.054000
2020-11-08 18:12:40.054000
2020-11-08 18:14:08.054000
2020-11-08 18:15:36.054000
2020-11-08 18:17:04.054000
2020-11-08 18:18:32.054000
------------
2020-11-08 18:18:32.054000
2020-11-08 18:18:32.054000
2020-11-08 18:18:32.054000
2020-11-08 18:18:32.054000
2020-11-08 18:18:32.054000
2020-11-08 18:18:32.054000
2020-11-08 18:18:32.054000
2020-11-08 18:18:32.054000
2020-11-08 18:18:32.054000
2020-11-08 18:18:32.054000
我不知道为什么会发生这种情况,但以下代码可以工作:
2020-11-08 18:03:13.265000
2020-11-08 18:04:41.265000
2020-11-08 18:06:09.265000
2020-11-08 18:07:37.265000
2020-11-08 18:09:05.265000
2020-11-08 18:10:33.265000
2020-11-08 18:12:01.265000
2020-11-08 18:13:29.265000
2020-11-08 18:14:57.265000
2020-11-08 18:16:25.265000
------------
2020-11-08 18:03:13.265000
2020-11-08 18:04:41.265000
2020-11-08 18:06:09.265000
2020-11-08 18:07:37.265000
2020-11-08 18:09:05.265000
2020-11-08 18:10:33.265000
2020-11-08 18:12:01.265000
2020-11-08 18:13:29.265000
2020-11-08 18:14:57.265000
2020-11-08 18:16:25.265000
我使用
dictionary.copy()
方法复制列表元素(dictionary)。第二部分需要什么输出?这看起来好像缺少了一段代码,可能是类似于start\u datetime=datetime.datetime.now()
的代码,它可以解释第二次输出中的时间戳。@大多数情况下,如果看到最后一次列表输出,则所有的日期时间都是相同的。请提供一个可运行的。@martineau我尝试一下。但是对于可运行的示例,没有错误。@martineau调度传输列表不会被线程或其他地方更改。
2020-11-08 18:03:13.265000
2020-11-08 18:04:41.265000
2020-11-08 18:06:09.265000
2020-11-08 18:07:37.265000
2020-11-08 18:09:05.265000
2020-11-08 18:10:33.265000
2020-11-08 18:12:01.265000
2020-11-08 18:13:29.265000
2020-11-08 18:14:57.265000
2020-11-08 18:16:25.265000
------------
2020-11-08 18:03:13.265000
2020-11-08 18:04:41.265000
2020-11-08 18:06:09.265000
2020-11-08 18:07:37.265000
2020-11-08 18:09:05.265000
2020-11-08 18:10:33.265000
2020-11-08 18:12:01.265000
2020-11-08 18:13:29.265000
2020-11-08 18:14:57.265000
2020-11-08 18:16:25.265000
#3. add times as field
self.scheduled_transmitions = self.scheduled_transmitions_copy[:]
self.scheduled_transmitions_copy = []
self.datetime_clock = start_datetime
for scheduled_transmition in self.scheduled_transmitions:
print(self.datetime_clock)
entry = scheduled_transmition.copy()
entry["datetime"]=self.datetime_clock
self.datetime_clock = self.datetime_clock+datetime.timedelta(seconds=int(scheduled_transmition["duration_in_seconds"]))
self.scheduled_transmitions_copy.append(entry)
print("------------")
self.scheduled_transmitions = self.scheduled_transmitions_copy[:]
self.scheduled_transmitions_copy = []
for scheduled_transmition in self.scheduled_transmitions:
print(scheduled_transmition["datetime"])
return 1