Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python定时列表创建_Python_Python 2.7 - Fatal编程技术网

Python定时列表创建

Python定时列表创建,python,python-2.7,Python,Python 2.7,我从流式API接收数据,并将其插入列表(此列表每天接收数据约8小时),然后在给定时间段后执行一些计算,然后将这些计算结果插入另一个列表,然后等待另一个时间段,并在该列表上执行计算以创建第三个列表。在Python中实现这一点的最佳方法是什么?伪代码: FirstList(): ''' Wait 15 minutes to create first list''' SecondList(): '''Calculate results from first list and create a s

我从流式API接收数据,并将其插入列表(此列表每天接收数据约8小时),然后在给定时间段后执行一些计算,然后将这些计算结果插入另一个列表,然后等待另一个时间段,并在该列表上执行计算以创建第三个列表。在Python中实现这一点的最佳方法是什么?伪代码:

 FirstList():
 ''' Wait 15 minutes to create first list'''

SecondList():
'''Calculate results from first list and create a second list after given period of time'''

 ThirdList():
 ''' Calculate results from SecondList and create third list after a given period of time'''

您可以使用Python的
Threading
模块中的
Timer

您的程序将如下所示:

from threading import Timer

def buildLists():
    global list1, list2, list3
    list1 = FirstList()
    # Calculate other two lists
    list2 = SecondList()
    list3 = ThirdList()

# Run buildLists after 15 minutes (900 seconds)
listTimer = Timer(900.0, buildLists)
listTimer.start()
其工作方式是创建一个计时器实例,该实例在完成时运行一个函数


我不清楚您所说的“从第一个列表计算结果并在给定时间段后创建第二个列表”的确切含义,因此可能需要根据您的特殊需要修改该部分,但是一般的方法应该对你有用。

你能告诉我们你尝试过什么吗?只用于你的方法或功能吗?@dmitryro的副本这可能是我需要的。谢谢。谢谢您的想法@rp.beltran,但是,如果我正确理解您的代码,它将在15分钟延迟后开始构建第一个列表。我没有很好地解释我自己。让我再试一次。我需要让列表1包含15分钟数据流中的值;列表1需要包含一个包含15分钟数据的嵌套列表(例如,列表1[[15minosfdata]、[2nd15minosfdata]…]),并且永远不要停止创建该列表。从那里,我从列表1中的每个嵌套列表中提取必要的值,并将这些值插入到列表2中,创建另一个嵌套列表。总之,在45分钟的延迟后,当len(list1)==3,x=列表1中3个嵌套列表的计算结果,然后是列表2.append(x),当len(list2)==3,r=列表2中3个列表的计算结果,然后是列表3.append(r). 等待15分钟,计算列表1中最新的3个列表,并将它们附加到列表2中。