python - 我想更新我在 while 循环中使用的列表,而循环仍在运行。有没有办法做到这一点?
问题描述
我有一个使用 while 循环的函数,理想情况下我想设置它然后在后台运行。在这个 while 循环中,我使用了一个列表。我想要做的是,如果我想到要在此列表中添加其他内容,我可以简单地编辑列表,然后在下次循环开始时使用更新的列表。目前,我似乎无法找到一种方法来做到这一点。
我尝试在单独的程序中定义列表,然后在每个循环开始时将其导入。然后我在单独的程序中更新了列表,但这并没有反映在输出中。
import time
while True:
from list_test import sample_list
print(sample_list)
time.sleep(30)
当我更新 sample_list 时,输出不会改变。有人知道为什么吗?抱歉,如果解决方案很简单,我对一般编程很陌生!
解决方案
正如评论中已经说明的那样,通常不建议更新您正在迭代的列表(即使您只是在示例中打印它)。也就是说,您可以将importlib与reload方法一起使用。例如像这样:
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)
请注意,您必须手动更新列表才能看到更改。在运行时用另一个程序更新列表将不起作用。
推荐阅读
- c# - 更新客户记录
- variables - 在 Tcl 中将变量从较低的 proc 传递到较高的 proc
- r - 应用对数刻度时的 R 选择性有限数误差
- lua - 使用 FFI 将二进制数据读取为 Lua 数
- vb.net - 创建 AS400 类以在 vb.net 应用程序中实现
- dart - 飞镖类中的冒号是什么意思?
- html - 使用 R 进行网页抓取 - 非 HTML 内容 - Firebase 生成的应用程序
- python - Python 中的 ARIMA 模型
- java - 如何使用 setter 和 getter 函数实现线程安全类,其中使用 setter 的频率远高于 getter
- python - 想要基于生成绘图的函数创建动画