Komisch, dass noch keiner gefragt hat, wie i initialisiert ist
Zur Fehlersuche wäre übrigens interessant gewesen, welchen Wert du in Delete reingegeben hast zu dem Zeitpunkt der
Exception (Stichwort debug dcus) und Stoppunkt in die Zeile des raise).
Deine Logik, den Index beim Löschen über -a anzupassen, ist vermutlich falsch.
Du gehst davon aus, dass sie nach Index sortiert ist,
denn nehmen wir an, in der Liste stehen 1 und 0, dann versucht er Index 1 und -1 (0 - a, und in a steht 1) zu löschen.