0

我试图了解 Python 的一些内置堆功能。当我传入元组列表时,它似乎不喜欢事情(或者更有可能,我没有正确传递列表)。这是我所拥有的:

myList = ( ('a', 1), ('b', 2) )
heapify(myList)

我得到的错误是

TypeError:堆参数必须是一个列表

难道我做错了什么?还有另一种方法可以传入元组列表吗?

谢谢!

4

2 回答 2

8

问题是这myList是一个元组。试试这个:

myList = [('a', 1), ('b', 2)]
heapify(myList)
于 2012-10-23T19:47:11.297 回答
2

如上所述,heapify 将列表(myList)转换为堆。因此,如果您想使用 heapify,您必须先将所有内容转换为列表。

http://docs.python.org/library/heapq.html <--- 为您提供有关 heapq 的更多详细信息

于 2012-10-23T19:55:25.560 回答