相关疑难解决方法(0)

Python的通用优先级队列

我需要在Python代码中使用优先级队列.为了寻找有效的东西,我遇到了堆积.它看起来不错,但似乎只为整数指定.我认为它适用于具有比较运算符的任何对象,但它没有指定它需要哪些比较运算符.

此外,heapq似乎是用Python实现的,所以它并不快.

您是否了解Python中优先级队列的任何快速实现?最理想的情况是,我希望队列是通用的(即适用于具有指定比较运算符的任何对象).

提前致谢

更新:

重新比较heapq,我可以使用(priority, object)查理马丁建议的,或者只是__cmp__为我的对象实现.

我还在寻找比他更快的东西heapq.

python queue

45
推荐指数
6
解决办法
8万
查看次数

TypeError:'tuple'和'str'的实例之间不支持'<'

我有一个构建霍夫曼树的方法,如下所示:

def buildTree(tuples) :
    while len(tuples) > 1 :
        leastTwo = tuple(tuples[0:2])                  # get the 2 to combine
        theRest  = tuples[2:]                          # all the others
        combFreq = leastTwo[0][0] + leastTwo[1][0]     #enter code here the branch points freq
        tuples   = theRest + [(combFreq,leastTwo)]     # add branch point to the end
        tuples.sort()                                  # sort it into place
    return tuples[0]            # Return the single tree inside the list
Run Code Online (Sandbox Code Playgroud)

但是我用以下参数提供函数:

[(1, 'b'), (1, 'd'), (1, 'g'), (2, 'c'), (2, 'f'), (3, 'a'), (5, 'e')] …
Run Code Online (Sandbox Code Playgroud)

python sorting python-3.x

8
推荐指数
1
解决办法
3万
查看次数

队列如何在python中工作?

我正在尝试学习Python的东西,并想知道是否有人可以帮助我使用优先级队列的一些例子.我在java中知道它们是如何工作的,但似乎无法看到它们如何在Python中工作的清晰示例.就像我从这里看到队列的大小是.qsize():http://docs.python.org/2/library/queue.html 但它没有显示获得最小值,最大值,组织的示例,弹出,添加到队列中,对它们进行排序,迭代它们.如果有人可以给我一个这样的例子,或者指出我在哪里学习这个方向的正确方向,我真的很感激.

python

2
推荐指数
2
解决办法
478
查看次数

标签 统计

python ×3

python-3.x ×1

queue ×1

sorting ×1