我想更新在while循环中使用的列表,而循环仍在运行。有没有办法做到这一点?

时间:2019-05-08 09:28:14

标签: python

我有一个使用while循环的函数,理想情况下,我想设置该函数然后在后台运行。在这个while循环中,我使用一个列表。我想做的是,如果我认为要在此列表中放入其他内容,我可以简单地编辑该列表,然后在下次循环开始时使用更新的列表。此刻,我似乎找不到办法。

我试图在单独的程序中定义列表,然后在每个循环的开始将其导入。然后,我在单独的程序中更新了列表,但是输出中未反映出该列表。

import time
while True:
    from list_test import sample_list
    print(sample_list)
    time.sleep(30)

当我更新sample_list时,输出不会改变。有人知道为什么是这样吗?抱歉,如果解决方案很简单,那么我一般对编程还是陌生的!

1 个答案:

答案 0 :(得分:2)

正如评论中已经提到的那样,通常不建议您更新要迭代的列表(即使您只是在示例中打印它)。也就是说,您可以将importlibreload方法一起使用。例如这样的

import time
import importlib

list_module = importlib.import_module("list_test")
sample_list = list_module.sample_list
while True:
    sample_list = importlib.reload(list_module).sample_list
    print(sample_list)
    time.sleep(5)

请注意,您必须手动更新列表才能查看更改。在运行时使用其他程序更新列表将不起作用。