如何创建固定长度的列表

How to create a fixed length list

我正在尝试附加一个列表,其中包含从 websocket 接收到的值,以便我只获取前 5 分钟(300 秒,而不是我的示例中的 10 秒)的最后一个值。到目前为止我用过:

      D=[None]*10 #whose length returns 10 then 11, 12 and so on as I update it with new values

      D = []

      for i in range(10):

      D.append(i) #whose length returns 10 then 20, 30 and so on as I update it with new values

关于我如何进行的任何想法?如果不可能,我正在考虑创建一个更新 5 分钟的列表,然后在接下来的 5 分钟内清除并更新,依此类推。关于这一点,是否可以在特定时间(例如 13 点到 13 点 05 分)开始添加列表,然后重新启动? 谢谢, Lrd

这可以通过 collections.deque 来完成:

>>> from collections import deque
>>> d = deque(maxlen=5)
>>> d.extend([1,2,3,4])
>>> d
deque([1, 2, 3, 4], maxlen=5)
>>> d.append(5)
>>> d
deque([1, 2, 3, 4, 5], maxlen=5)
>>> d.append(9)
>>> d
deque([2, 3, 4, 5, 9], maxlen=5) # the list shifted to the left