def genera_evD(d):
    estacions = {}
    for linia in d:
        actualitza_evD(estacions, linia, d[linia])
    return estacions

def actualitza_evD(estacions, linia, lest):
    for i in range(1, len(lest) - 1):
        afegeix_ev(estacions, lest[i], lest[i - 1], linia)
        afegeix_ev(estacions, lest[i], lest[i + 1], linia)
    afegeix_ev(estacions, lest[0], lest[1], linia)
    afegeix_ev(estacions, lest[-1], lest[-2], linia)

def afegeix_ev(estacions, estacio, veina, linia):
    if estacio not in estacions:
        estacions[estacio] = []
    estacions[estacio].append((veina, linia))
