首页 > 解决方案 > 在 Python 中实时不断变化的更新列表

问题描述

我对python很陌生,似乎在搜索完之后我似乎找不到解决方案。所以我想要做的是有一个空白列表,其中没有任何内容,然后有一个变量将每天总是在变化的数据附加到该列表中。我想要的是如何更新发生这种情况的更改列表。我将尝试在这段代码中解释它

l = []
sum = data[0][1]
l.append(sum)

现在,这个总和变量值每天或每秒都在变化,就像从不断更新的 JSON 文件中获取数据一样。我想要做的是列表不会改变,但每次改变时都会添加不断变化的总和,所以如果第一天 sum = 1,然后第二天 sum = 2,我希望更新列表所以第一天是[1],第二天是[1,2]。我真的很困惑我应该学习python的哪一部分才能做到这一点,如果有人有任何建议,这对我在python中的第一个项目真的有帮助。谢谢你。

标签: python

解决方案


这需要使用循环。这是一个使用无限循环 ( while True) 的示例。

import time  # for "waiting" a day

N_SEC_IN_DAY = 60 * 60 * 24  # 1 day in seconds
list_ = []
while True:
    sum_ = getsum()  # defined elsewhere
    list_.append(sum_)
    time.sleep(N_SEC_IN_DAY)

另外,请注意我所做的几个风格上的改变。

  • list->list_避免与内置函数发生冲突。

  • sum->sum_避免与内置函数发生冲突。

如果您想在程序运行时访问此列表,您可能需要添加一个记录器,该记录器在list_每次sum_添加新值时记录值。

将以下行添加到代码的顶部:

import logging
logging.basicConfig(filename='log', level=logging.INFO)

添加更改循环以说:

while True:
    sum_ = getsum()  # defined elsewhere
    list_.append(sum_)
    logging.info(str(list))  # LOGGING TAKES PLACE HERE
    time.sleep(N_SEC_IN_DAY)

最后,我想指出一个更好的方法是使用 crontabs 来安排作业。我不打算深入讨论,因为网上有很多教程,只要谷歌“crontab”。(感谢评论者 DevanshSoni 的提醒。)


推荐阅读