帮我用Python写个二叉堆优化的戴克斯特拉算法

好的,以下是使用 Python 实现的带二叉堆优化的 Dijkstra 算法的代码:

import heapq
from collections import defaultdict

def dijkstra(graph, start):
    distances = {vertex: float('infinity') for vertex in graph}
    distances[start] = 0
    heap = [(0, start)]
    while heap:
        (current_distance, current_vertex) =