我试图了解 Python 的一些内置堆功能。当我传入元组列表时,它似乎不喜欢事情(或者更有可能,我没有正确传递列表)。这是我所拥有的:
myList = ( ('a', 1), ('b', 2) )
heapify(myList)
我得到的错误是
TypeError:堆参数必须是一个列表
难道我做错了什么?还有另一种方法可以传入元组列表吗?
谢谢!
我试图了解 Python 的一些内置堆功能。当我传入元组列表时,它似乎不喜欢事情(或者更有可能,我没有正确传递列表)。这是我所拥有的:
myList = ( ('a', 1), ('b', 2) )
heapify(myList)
我得到的错误是
TypeError:堆参数必须是一个列表
难道我做错了什么?还有另一种方法可以传入元组列表吗?
谢谢!
问题是这myList
是一个元组。试试这个:
myList = [('a', 1), ('b', 2)]
heapify(myList)
如上所述,heapify 将列表(myList)转换为堆。因此,如果您想使用 heapify,您必须先将所有内容转换为列表。
http://docs.python.org/library/heapq.html <--- 为您提供有关 heapq 的更多详细信息