Python 有可能吗?

Python 有可能吗?,python,heap,defaultdict,Python,Heap,Defaultdict,我喜欢Python中的collections.defaultdict。但是我真的很想将它用于heapq堆,考虑到Python的heapq实现是建立在我认为可能的列表上的。但我看没有办法 d = defaultdict(list) d[1].append((1, "Dog")) e、 g 如果append是heappush。有没有办法?也许heapq.heappush(d[1],(1,'Dog'))?heapq使用任何外部列表作为存储,您不需要显式地将堆和容器耦合,因此@vaultah是正确的

我喜欢Python中的collections.defaultdict。但是我真的很想将它用于heapq堆,考虑到Python的heapq实现是建立在我认为可能的列表上的。但我看没有办法

d = defaultdict(list)

d[1].append((1, "Dog"))
e、 g


如果append是heappush。有没有办法?

也许
heapq.heappush(d[1],(1,'Dog'))
?heapq使用任何外部列表作为存储,您不需要显式地将堆和容器耦合,因此@vaultah是正确的。当然。哼!谢谢vaultahI我认为@vaultah回答了这个问题,但我怀疑还有更多。(我看不出defaultdict的作用是什么。)你能说更多关于你试图产生的确切行为吗?(编辑:或者可能不是…嗯。那么目标就是让每个键都有一个空堆作为默认值?)我想它必须是defaultdict(heapq.heapify([])。但这会导致关键错误。defaultdict(列表)工作正常。我不确定我是否完全理解为什么。