Entfernen einer Instanz eines Objekts in der Python-Liste

Ich denke, das sollte funktionieren, aber es gibt mir einen Fehler. Ich habe eine Liste, die Objekte der Klasse enthältnode. Ich habe zwei verschiedene Listen

open_listnode_list. (Sie sind der Länge nach nicht gleich, was die Reihenfolge betrifft)

Wenn ich einen bestimmten Knoten in deropen_list Ich muss es aus der löschennode_list. Ich weiß, dass die Listen Adressen zu den darin gespeicherten Objekten haben

Also, wenn ich es versuche

removed = open_list.pop(min_index) 
node_list.remove(removed) 

Es gibt mir einen Fehler zu sagen

node_list.remove(removed)
ValueError: list.remove(x): x not in list

Aber die Liste enthält nur Adressen, die wie Zeiger wirken, oder? Es sollte mit denselben Adressen übereinstimmen. Ich habe die Adresse von ausgedrucktremoved und das ganzenode_list (nur 10 Elemente fürchten sich jetzt nicht) Ausdruck: (das letzte Element in node_list stimmt mit der Adresse des entfernten überein:

removed: <__main__.node instance at 0x0124A440>
node_list: [<__main__.node instance at 0x01246E90>, <__main__.node instance at 0x01246EE0>, <__main__.node instance at 0x0124A300>, <__main__.node instance at 0x0124A328>, <__main__.node instance at 0x0124A350>, <__main__.node instance at 0x0124A378>, <__main__.node instance at 0x0124A3A0>, <__main__.node instance at 0x0124A3C8>, <__main__.node instance at 0x0124A3F0>, <__main__.node instance at 0x0124A418>, <__main__.node instance at 0x0124A440>]

Vielen Dank

Follow-up Q

Ich möchte also überprüfen, ob der Knoten, den ich entfernen möchte, in der node_list vorhanden ist. als ich ein paar einfache Listenfunktionen nachgeschlagen habehttp://docs.python.org/tutorial/datastructures.html

list.index(x) undremove.index(x) beide geben einen Fehler aus, wenn das Element nicht in der Liste enthalten ist. Dies führte dazu, dass mein Programm nicht mehr lief. Um dies zu umgehen, kann ich diese Anweisung vor dem.remove(): node in node_list Ich denke derin prüft, ob ein Element Teil einer Liste ist und gibt einen Bool zurück. gerade doppelter überprüfung danke,

Antworten auf die Frage(3)

Ihre Antwort auf die Frage