我看到的一切都是关于列表的,但这是关于events = queue.queue()
这是一个包含我想要提取的对象的队列,但是如何从该队列中获取最后N个元素呢?
答案 0 :(得分:3)
根据定义,你不能。
你可以做的是使用循环或理解来get
第一个(你不能get
从queue
结束N个元素:
N = 2
first_N_elements = [my_queue.get() for _ in range(N)]
答案 1 :(得分:0)
如果您是多线程,“该队列中的最后N个元素”未定义且问题没有意义。
如果没有多线程,则取决于您是否关心其他元素(不是最后一个N)。
如果你不这样做:
for i in range(events.qsize() - N):
events.get()
之后,获得N个项目
如果您不想丢弃其他项目,则只需将所有内容移动到不同的数据结构(如列表)。队列的重点是以某种顺序获取事物。