python - 如何从双端队列中弹出()很多元素?

标签 python deque

我有一个包含大量数据的双端队列对象。我想从队列的前面提取 4096 个元素(我将它用作一种 FIFO)。似乎应该有办法做到这一点,而不必迭代超过 4096 个弹出请求。

这是正确/高效/愚蠢的吗?

A = arange(100000)
B = deque()
C = [] # List will do 
B.extend(A) # Nice large deque

# extract 4096 elements
for i in xrange(4096):
   C.append(A.popleft())

最佳答案

双端队列没有多弹出方法。欢迎您向 bugs.python.org 提交功能请求,我会考虑添加它。

我不知道您的用例的详细信息,但如果您的数据以 4096 个 block 的形式出现,请考虑将这些 block 存储在元组或列表中,然后将这些 block 添加到双端队列:

block = data[:4096]
d.append(block)
...
someblock = d.popleft()

关于python - 如何从双端队列中弹出()很多元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9507636/

相关文章:

python - 在 python 中的字符串中的每个字符后添加空格(pythonic 方式)

python - 意外的双端队列 python 行为

Python:是否有双端队列的线程安全版本?

c++ - 我可以在 c++11 中的 std::deque 上使用 std::max_element() 吗?

python - 如何在维护所有键值信息的同时从 python 中的两个列表创建字典?

python - 如何改写代码更优雅

Python:将灰度图像转换为 RGB

python - 微调时使用 HuggingFace 库进行标记时出现问题

c++ - 当迭代器在双端队列中失效时,引用如何有效

python - python 的尾部。最佳性能实现