问题:我有这个特定时间的列表,例如:repeat = ['8:15','14:28','19:43','1:21']现在我正在尝试创建一个函数,该函数将输出一个包含n个日期时间对象的列表,如下所示:>>> import datetime>>> >>> datetime.datetime.now()datetime.datetime(2018, 10, 30, 17, 5, 55, 908000) # 2018-10-30 17:05:55>>> >>> output = magic(repeat, how_many=3) # <--->>> output[datetime.datetime(2018, 10, 30, 19, 43), datetime.datetime(2018, 10, 31, 1, 21), datetime.datetime(2018, 10, 31, 8, 15)]>>> >>> >>> for i in output:>>> print( i.strftime("%Y-%m-%d %H:%M:%S") )2018-10-30 19:43:002018-10-31 01:21:002018-10-31 08:15:00我的进度:所以我用这个解决方案解决了这个问题:def next(datetime_object, repeat): # this function should calculate the next datetime from the datetime_object return next_datetime_objectdef magic(repeat, how_many=10): converted = [] for i in repeat: converted.append( datetime.datetime.strptime(i, '%H:%M') ) now = datetime.datetime.now() output = [ next(now,converted) ] while len(output) < how_many: output.append( next(output[-1] ,converted) ) return output虽然我在创建这个next()应该计算下一个日期时间对象的函数时遇到了困难。另外,如果有人有任何其他比我更好的替代解决方案,请与我分享。编辑 1(只是为了澄清)输入: repeat = ['8:15','14:28','19:43','1:21']功能: magic(repeat, how_many=3)输出: [ datetime.datetime(2018, 10, 30, 19, 43), datetime.datetime(2018, 10, 31, 1, 21), datetime.datetime(2018, 10, 31, 8, 15) ]注意:输出取决于电流datetime.datetime.now()。在上面的例子中,当前时间是datetime.datetime(2018, 10, 30, 17, 5, 55, 908000)
添加回答
举报
0/150
提交
取消