首页 > 解决方案 > 列表中的日期时间对象

问题描述

#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

up 代码输出错误。

#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 = {"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

但最后一个没有。

为什么?

第一个代码的输出(错误):

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

标签: pythonlistdatetime

解决方案


我不知道为什么会发生这种情况,但以下代码有效:

    #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

我使用方法复制列表元素(字典)dictionary.copy()


推荐阅读