使用步骤7秒生成时间序列

xra*_*alf 3 python list-comprehension generator sequence

你会如何在Python中生成以下字符串序列?

00:00:00
00:00:07
00:00:14
00:00:21
...
00:00:49
00:00:56
00:01:03
Run Code Online (Sandbox Code Playgroud)

这一步是7秒.结束时间约为03:30:+/-

我会使用模块化算法的解决方案(首先1200小时,60小时有分钟,余数是秒,数字应转换为字符串,"一位"字符串应以"0"为前缀).

是否有一些更智能(pythonic)的解决方案,在标准库或列表理解中使用一些辅助生成器?

Ada*_*mKG 7

def yield_times():
    from datetime import date, time, datetime, timedelta
    start = datetime.combine(date.today(), time(0, 0))
    yield start.strftime("%H:%M:%S")
    while True:
        start += timedelta(seconds=7)
        yield start.strftime("%H:%M:%S")

>>> gen = yield_times()
>>> for ii in range(5):
...     print gen.next()
... 
00:00:00
00:00:07
00:00:14
00:00:21
00:00:28
Run Code Online (Sandbox Code Playgroud)


faj*_*ran 5

试试这个

from datetime import datetime, timedelta

now = datetime(2000, 1, 1, 0, 0, 0)
last = datetime(2000, 1, 1, 3, 30, 0)
delta = timedelta(seconds=7)

times = []
while now < last:
    times.append(now.strftime('%H:%M:%S'))
    now += delta
Run Code Online (Sandbox Code Playgroud)