如何在python中查找最近添加到队列中的项?

如何在python中查找最近添加到队列中的项?,python,Python,我想知道最近排队的项目在队列中是什么。我怎么才能知道呢 换句话说,如何找到队列将要出列的最后一个项目(或最近入列的项目)您是如何实现队列的?如果它实现为一个列表,那么大概yourdata.pop(0)会删除并返回第一项。最近排队的项目将位于列表的末尾,yourdata.pop()删除并返回,或者yourdata[-1]查看项目而不修改列表内容 为队列使用列表是一个坏主意,因为会导致性能损失,但是:每次删除第一个项目时,列表中所有后续项目都必须更新。通过专门的队列实现,例如collections.

我想知道最近排队的项目在队列中是什么。我怎么才能知道呢


换句话说,如何找到队列将要出列的最后一个项目(或最近入列的项目)

您是如何实现队列的?如果它实现为一个列表,那么大概
yourdata.pop(0)
会删除并返回第一项。最近排队的项目将位于列表的末尾,
yourdata.pop()
删除并返回,或者yourdata[-1]查看项目而不修改列表内容

为队列使用列表是一个坏主意,因为会导致性能损失,但是:每次删除第一个项目时,列表中所有后续项目都必须更新。通过专门的队列实现,例如
collections.deque
,您将获得更好的性能。见以下讨论:

有关python中Queue vs deque的信息,请参阅:
您是如何实现队列的?如果它实现为一个列表,那么大概
yourdata.pop(0)
会删除并返回第一项。最近排队的项目将位于列表的末尾,
yourdata.pop()
删除并返回,或者yourdata[-1]查看项目而不修改列表内容

为队列使用列表是一个坏主意,因为会导致性能损失,但是:每次删除第一个项目时,列表中所有后续项目都必须更新。通过专门的队列实现,例如
collections.deque
,您将获得更好的性能。见以下讨论:

有关python中Queue vs deque的信息,请参阅:

我不完全确定您在这里想要实现什么,但以下方法可能有效,只需检查队列是否为空即可

>>> from Queue import Queue
>>> q = Queue()    
>>> _ = [q.put(index) for index in xrange(2, 10)]
>>> if not q.empty():
...    q.queue[-1]
9
>>> 

我假设您正在使用python自己的
队列
对象,我建议您使用它,因为它是线程安全的:)

我不完全确定您在这里想要实现什么,但是下面的方法可能会起作用,只需检查队列是否为空即可

>>> from Queue import Queue
>>> q = Queue()    
>>> _ = [q.put(index) for index in xrange(2, 10)]
>>> if not q.empty():
...    q.queue[-1]
9
>>> 
我假设您正在使用python自己的
Queue
对象,我建议您使用它,因为它是线程安全的:)