python – 我怎样才能获得两天之间的所有日子?
发布时间:2020-12-20 13:00:38 所属栏目:Python 来源:网络整理
导读:我需要两天之间的所有工作日. 例: Wednesday - Friday = Wednesday,Thursday,Friday 3 - 5 = 3,4,5 Saturday - Tuesday = Saturday,Sunday,Monday,Tuesday 6 - 2 = 6,7,1,2 我很确定有一个聪明的算法来解决这个问题.我能想到的唯一算法是使用循环或if语句.
我需要两天之间的所有工作日.
例: Wednesday - Friday = Wednesday,Thursday,Friday 3 - 5 = 3,4,5 Saturday - Tuesday = Saturday,Sunday,Monday,Tuesday 6 - 2 = 6,7,1,2 我很确定有一个聪明的算法来解决这个问题.我能想到的唯一算法是使用循环或if语句. 必须有一种优雅的方法来解决这个问题.我在工作日使用数字1-7,但0-6也很好. 我能想到的最好的: def between(d1,d2): alldays = [0,2,3,5,6,6] # or range(7) * 2 offset = 8 if d1 > d2 else 1 return alldays[d1:d2 + offset] between(0,4) # [0,4] between(5,2) # [5,2] 解决方法>>> def weekdays_between(s,e): ... return [n % 7 for n in range(s,e + (1 if e > s else 8))] ... >>> weekdays_between(2,4) [2,4] >>> weekdays_between(5,1) [5,1] 如果你必须从/转换到实际天数,它会更复杂一些. >>> days = 'Mon Tue Wed Thu Fri Sat Sun'.split() >>> days_1 = {d: n for n,d in enumerate(days)} >>> def weekdays_between(s,e): ... s,e = days_1[s],days_1[e] ... return [days[n % 7] for n in range(s,e + (1 if e > s else 8))] ... >>> weekdays_between('Wed','Fri') ['Wed','Thu','Fri'] >>> weekdays_between('Sat','Tue') ['Sat','Sun','Mon','Tue'] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 适用于Python 3的WSGI服务器(PEP 3333)
- python数据类型判断type与isinstance的区别实例解
- 如何将字典kwargs输入matplotlib传奇例程?
- python – 使用WeakValueDictionary进行缓存时G
- python – 为什么在memcache上调用get()会增加Go
- Python:我可以为所有模块放置默认导入吗?
- Python win32api.mouse_event TypeError
- 在Cython中将Python列表转换为Vector
- Python请求库添加了一个额外的标题“Accept-Enco
- python – 解析penn语法树以提取其语法规则
热点阅读