python - 如何将一个队列交错到另一个队列中?
问题描述
有哪些方法可以将一个队列交错到另一个队列中?例如: q1 = 1->2->3 , q2 = a->b->c 将 q2 交织到 q1 后,我想要 1->a->2->b->3->c . 我搜索的所有答案都是关于将它们一一合并到一个新队列中,而不是更改一个队列。
这就是我所做的,根本没有工作。
def interleave(q1, q2):
first = q1.dequeue()
while q2.size() != 0:
removed = q2.dequeue()
first.enqueue(removed)
first = first.dequeue()
提前致谢!
解决方案
使您的代码工作的一种方法是这样的:
def interleave(q1, q2):
result = queue.Queue()
while not q1.empty() or not q2.empty():
if not q1.empty():
result.put(q1.get())
if not q2.empty():
result.put(q2.get())
return result
有关 Python 队列的更多信息,请阅读https://docs.python.org/3.8/library/queue.html
推荐阅读
- filter - 量角器和减少 .all 元素列表
- python - Python:从多个 csv.gz 创建熊猫数据框,仅提取 von CSV 指定的列
- powershell - 如何将此用于 Active Directory 的 power shell 命令转换为批处理文件?
- dockerfile - 可以在 Dockerfile 中使用 pushd/popd 吗?
- r - 从列表项对中查找向量的组合
- codeception - Codeception - 处理使用子域前缀的测试环境
- tensorflow - 在 Google ML Engine 上以 .model .json 和 .h5 形式部署 Keras/Tensorflow CNN 的最简单方法是什么?
- email - Gmail 是否仍支持架构?Apps 脚本快速入门示例不起作用
- css - Angular 6 - 如何在组件级别应用外部 CSS 样式表(传单)?
- macos - RabbitMQ Go 教程 log.Printf 无法写入磁盘文件?