在 Python 中获取队列的第一个元素

在 Python 中使用 get() 方法获取队列的第一个元素。 get() 方法从队列中移除并返回一个项目。 如果我们不想删除该元素,请使用队列上的 queue 属性并访问索引 0 处的元素。

import queue

q = queue.Queue()

for item in range(15):
    q.put(item)


print(q.queue[0])  # 👉️ 0 在不删除它的情况下获得第一个

# 👇️ 从队列中移除并返回一个项目
print(q.get())  # 👉️ 0 (get first)
print(q.get())  # 👉️ 1 (get second)
print(q.get())  # 👉️ 2 (get third)

在 Python 中获取队列的第一个元素

如果我们使用集合模块中的 deque 对象,请向下滚动到下一个代码片段。

queue 属性使我们能够访问 deque 对象,并且 deque 对象支持 popleft() 操作和索引。

如果我们不想删除队列的特定元素而只想访问它,请使用 q.queue[0]。

queue.get() 方法从队列中移除并返回一个项目。

如果使用 collections.deque 类,则可以通过访问索引 0 处的 deque 对象来访问队列中的第一个元素。

from collections import deque

deq = deque(['a', 'b', 'c'])

print(deq[0])  # 👉️ get first
print(deq[1])  # 👉️ get second
print(deq[2])  # 👉️ get third

first = deq.popleft()
print(first)  # 👉️ 'a'

print(deq) # 👉️ deque(['b', 'c'])

Deque 对象支持索引,因此获取队列的第一个元素与获取列表的第一个元素相同。

双端队列对象也支持 popleft() 方法。

该方法从双端队列的左侧移除并返回一个元素。

如果双端队列中不存在任何元素,则该方法会引发 IndexError。

如果我们需要从双端队列的右侧删除并返回一个元素,请使用 pop() 方法。

from collections import deque

deq = deque(['a', 'b', 'c'])

print(deq[0])  # 👉️ get first

first = deq.popleft()
print(first)  # 👉️ 'a'

print(deq)  # 👉️ deque(['b', 'c'])

last = deq.pop()
print(last) # 👉️ 'c'

print(deq)  # 👉️ deque(['b'])

在 Python 中获取队列的第一个元素