为了账号安全,请及时绑定邮箱和手机立即绑定

获取重复时间的日期时间对象列表

获取重复时间的日期时间对象列表

慕工程0101907 2021-07-30 07:33:17
问题:我有这个特定时间的列表,例如: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)
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号