Python 生成一个每隔 5 分钟的时间序列,能简化下吗?

2017 年 7 月 9 日
 svsky
如下:
for x in range(0,24):
if len(str(x)) == 1:
x = str(0)+str(x)
for y in range(0,60,5):
if len(str(y)) == 1:
y = str(0)+str(y)
print(str(x)+":"+str(y))
9263 次点击
所在节点    Python
14 条回复
yemoluo
2017 年 7 月 9 日
```python
s = ["{:0>2}:{:0>2}".format(i/60,i%60) for i in range(0,86400,5)]
```
yemoluo
2017 年 7 月 9 日
@GTim 把 5 分钟看成秒了,把 86400 换成 1440
hxsf
2017 年 7 月 9 日
[str(x) + ':' + str(y) for x in range(0, 24) for y in range(0, 60, 5)] 用推导式啊。。。
hsmocc
2017 年 7 月 9 日
["%02d:%02d" %(h,m) for h in range(0, 24) for m in range(0, 60, 5)]
staticor
2017 年 7 月 9 日
如果用过 Pandas 的话有方便的时间序列函数.

```python
import pandas as pd
pd.date_range('2017-01-01 01:00:00', '2017-01-01 02:00:00', freq= '5min')

```
Hieast
2017 年 7 月 9 日
arrow 也有专门的时间序列函数
Finest
2017 年 7 月 9 日
if len(str(y)) == 1:
为啥不直接 if y< 10: 呢。
raiz
2017 年 7 月 9 日
seq = ["%02d:%02d" %(i, j) for i in range(0,24) for j in range(0,60,5)]
hugo775128583
2017 年 7 月 9 日
你需要 rrule
mckelvin
2017 年 7 月 10 日
```
import datetime
start_dt = datetime.datetime(2017, 1, 1)
interval = datetime.timedelta(seconds=300)
for i in range(24 * 12):
print (start_dt + interval * i).strftime("%H:%M")
```
svsky
2017 年 7 月 10 日
@hsmocc 谢谢
hwsdien
2017 年 7 月 10 日
import arrow
start, end = arrow.now().span('day')
print [repr(r) for r in arrow.Arrow.range('minute', start, end) if r.minute % 5 == 0]
xuzixx1001
2017 年 7 月 10 日
9 楼+1 dateutil rrule
yylucifer
2017 年 7 月 18 日
@GTim 这个不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/374031

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX