在 Python 中从队列中获取一个项目而不删除它
使用队列的 queue
属性从队列中获取一个项目而不删除它,例如 q.queue[0]
。 队列属性指向一个支持索引的 deque
对象。
import queue
q = queue.Queue()
for item in range(10):
q.put(item)
print(q.queue[0]) # 👉️ 0
print(q.queue[0]) # 👉️ 0
print(q.queue[1]) # 👉️ 1
queue
属性使我们能够访问deque
对象,并且deque
对象支持popleft()
操作和索引。
如果不想删除队列的特定元素而只想访问它,请使用 q.queue[0]
。
如果我们使用 PriorityQueue
类,此方法也适用。
import queue
q = queue.PriorityQueue(maxsize=20)
for item in range(10):
q.put(item)
print(q.queue[0]) # 👉️ 0
print(q.queue[0]) # 👉️ 0
如果我们使用 collections.deque
类,我们还可以访问特定索引处的队列。
from collections import deque
deq = deque(['a', 'b', 'c'])
print(deq[0]) # 👉️ 'a'
print(deq[1]) # 👉️ 'b'
print(deq[2]) # 👉️ 'c'
当我们在 deque
对象的特定索引处访问队列项时,该项保留在队列中。
相反,如果我们在队列对象上使用 get()
方法或在 deque
对象上使用 popleft()
或 pop()
方法,则该项目将被返回并从队列中删除。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。