如何创建固定长度的列表
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
我正在尝试附加一个列表,其中包含从 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