在python中创建随机时间戳列表

问题描述:

有没有办法在Python中以严格增加的格式创建随机不规则时间戳列表?例如:在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 
+0

不'irregular'意味着'unique'?什么是哟使用时间戳? – dm03514 2014-11-04 16:34:18

+0

两个连续时间戳之间的时间差应该是不均匀的。也应该是独一无二的。我试图产生一个随机不规则采样时间序列。 – user93 2014-11-04 16:36:22

您可以构建一个随机生成器。

  • 您可以生成使用timedelta 0-60(分钟)之间randrange(60)拉多姆数

  • 时间增加的实际日期,你的情况,这是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 

UPDATE

您可以通过将差数,您已经生成的最后日期欺骗这一点,那么反转总体列表。 您也可以更改每次添加的随机数,以获得所需的结果。

您的代码看起来像。

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 
+0

感谢您的帮助。但我要求时间戳的顺序不断增加。有没有办法修改上面的代码? – user93 2014-11-04 17:00:04

+0

欢迎!你可以反转生成的列表,检查更新的地方,我添加更多的细节。 – 2014-11-04 17:09:38

+0

是的,这是我所尝试过的。完美工作。谢谢。 – user93 2014-11-04 17:20:21