Python 列表中的日期时间对象

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

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:
    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