使用Python如何确定一组数据是否已在内存中

使用Python如何确定一组数据是否已在内存中,python,memory,heap,Python,Memory,Heap,我正在研究创建堆,这里给出了两个选项。模块使用的基本情况如下: import heapq from heapq_showtree import show_tree from heapq_heapdata import data heap = [] print('random :', data) print() for n in data: print('add {:>3}:'.format(n)) heapq.heappush(heap, n) show_tree

我正在研究创建堆,这里给出了两个选项。模块使用的基本情况如下:

import heapq
from heapq_showtree import show_tree
from heapq_heapdata import data
heap = []
print('random :', data)
print()

for n in data:
    print('add {:>3}:'.format(n))
    heapq.heappush(heap, n)
    show_tree(heap)
指南接着说:

If the data is already in memory, it is more efficient 
to use heapq.heapify() to rearrange

这是什么意思?如何确定数据是否已存储在内存中?

这意味着,如果您碰巧已经有一个列表,那么直接在该列表上使用
heapify
比使用for-loop更有效。什么指南?你没有看heapq文档。是的,文档写得不好。如果数据不是“在内存中”,而是“如果你已经有一个Python列表,那么……”@juanpa.arrivillaga:Heck,如果你没有列表,构建一个列表并调用
heapify
比一次调用一个
heappush
项更有效
heappush
适用于增量修改堆,而不适用于初始堆构造。