heapify返回NoneType

bb2*_*bb2 4 python

我有

b = heapify([5,4,9,1])
Run Code Online (Sandbox Code Playgroud)

如果我做了

type(b)
Run Code Online (Sandbox Code Playgroud)

它说它是NoneType而不是列表类型,任何人都知道我做错了什么?

brc*_*brc 7

heapify()方法就地转换列表.这意味着它会更改列表,但不会返回修改后的列表.正如agf在下面提到的,heapify()返回None以保护您免受此错误的影响.因此,如果你这样做

lst = [5,4,9,1]
heapify(lst)
type(lst)
Run Code Online (Sandbox Code Playgroud)

你会看到lst现在已经堆积了.有关详细信息,请参阅库参考.

  • 值得补充的是,所有(或几乎所有)在其中起作用的Python方法都返回"无",因此当您不想这样做时,您不会意外地使用就地方法. (2认同)