有没有办法在Python中创建一个严格递增格式的随机不规则时间戳列表?例如:
20/09/2013 13:00
20/09/2013 13:01
20/09/2013 13:05
20/09/2013 13:09
20/09/2013 13:16
20/09/2013 13:26
有没有办法在Python中创建一个严格递增格式的随机不规则时间戳列表?例如:
20/09/2013 13:00
20/09/2013 13:01
20/09/2013 13:05
20/09/2013 13:09
20/09/2013 13:16
20/09/2013 13:26
你可以构建一个随机生成器。
你可以生成randrange(60)
在0-60之间的随机数字(代表分钟)
使用timedelta
将时间添加到实际日期中,对于你的情况,它是20/09/2013 13:..
构建一个生成器random_date
,指定一个起始日期和要生成的日期数量。
from random import randrange
import datetime
def random_date(start,l):
current = start
while l >= 0:
curr = current + datetime.timedelta(minutes=randrange(60))
yield curr
l-=1
startDate = datetime.datetime(2013, 9, 20,13,00)
for x in random_date(startDate,10):
print x.strftime("%d/%m/%y %H:%M")
输出。20/09/13 13:12
20/09/13 13:02
20/09/13 13:50
20/09/13 13:13
20/09/13 13:56
20/09/13 13:40
20/09/13 13:10
20/09/13 13:35
20/09/13 13:37
20/09/13 13:45
20/09/13 13:27
更新
你可以通过将差值加到你生成的最后一个日期,然后反转整个列表来欺骗它。你也可以每次更改添加的随机数,以获得所需的结果。
你的代码应该像这样。
from random import randrange
import datetime
def random_date(start,l):
current = start
while l >= 0:
current = current + datetime.timedelta(minutes=randrange(10))
yield current
l-=1
startDate = datetime.datetime(2013, 9, 20,13,00)
for x in reversed(list(random_date(startDate,10))):
print x.strftime("%d/%m/%y %H:%M")
输出:
20/09/13 13:45
20/09/13 13:36
20/09/13 13:29
20/09/13 13:25
20/09/13 13:20
20/09/13 13:19
20/09/13 13:16
20/09/13 13:16
20/09/13 13:07
20/09/13 13:03
20/09/13 13:01