【问题标题】:Redirecting queues to priority queue将队列重定向到优先队列
【发布时间】:2017-03-13 02:04:50
【问题描述】:

您好,我是 Python 新手,如果我要求太多,请原谅我。我正在使用队列模块来创建这些。我要做的是将一个字符串放入一个队列中,然后根据子字符串将其重定向到另外两个。

例如我的代码是:

import queue

firstQueue = queue.Queue()
secondQueue = queue.PriorityQueue()
thirdQueue = queue.PriorityQueue()

var1 = "Hello World!"
var2 = "Hello Stack!"
var3 = "Hello Wally!"

firstQueue.put(var1)
firstQueue.put(var2)
firstQueue.put(var3)

此时我想将第一个队列重定向到第二个队列,如果在这种情况下第 7 个字符以“W”开头,则为“World/Wally”,其他任何字符都进入第三个(假设放入第一个的所有字符串都是相同的长度)。非常感谢任何帮助和建议!

【问题讨论】:

    标签: python-3.x queue priority-queue


    【解决方案1】:

    使用循环遍历第一个队列中的每个元素并检查条件并将其放入第二个队列中,如下所示:

    while not firstQueue.empty():
        element = firstQueue.get()
        if(element[6] == 'W'):
            secondQueue.put(element)
    
    while not secondQueue.empty():
        print(secondQueue.get())
    

    【讨论】:

    • 谢谢,正是我正在寻找的。不过还有一个问题。假设开头的变量将有 1 或 2(“1Hello World!”和“2Hello Wally”)。如何设置我的优先级队列,以便它首先打印以 2 开头的变量?
    • @Jimmy 这是一个完全不同的问题,因此应该是一个单独的帖子。在这里链接次要问题是不受欢迎的 - 不断将球门柱转移到花时间回答您的原始问题的人身上是不公平的。
    • @pjs 很抱歉,这个网站还是很新的。我一定会单独发表一篇文章。
    猜你喜欢
    • 2017-04-11
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2022-01-07
    • 2018-06-24
    • 2010-12-28
    相关资源
    最近更新 更多