eliminar una instancia de un objeto en la lista de python
Creo que esto debería funcionar pero me está dando un error. Tengo una lista que contiene objetos de clase.node
. Tengo dos listas diferentes
Cuando encuentro un nodo específico en elopen_list
Necesito borrarlo de lanode_list
. Sé que las listas tienen direcciones a los objetos almacenados en ellas.
así que cuando trato de hacer
removed = open_list.pop(min_index)
node_list.remove(removed)
me da un error diciendo
node_list.remove(removed)
ValueError: list.remove(x): x not in list
pero la lista solo contiene direcciones que actúan como punteros, ¿no? debe coincidir con las mismas direcciones. imprimí la dirección deremoved
y el todonode_list
(solo 10 elementos por ahora no temen) imprimir: (el último elemento en node_list coincide con la dirección de eliminado:
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>]
Gracias
seguimiento Qasí que quiero comprobar si el nodo que quiero eliminar existe en la lista de nodos. Cuando busqué algunas funciones de lista simple enhttp://docs.python.org/tutorial/datastructures.html
list.index(x)
yremove.index(x)
ambos dan un error si el elemento no está en la lista. Esto hizo que mi programa dejara de ejecutarse. para evitar esto, ¿puedo usar esta declaración antes de la.remove()
: node in node_list
creo que elin
comprueba si un elemento es parte de una lista y devuelve un bool. sólo una doble verificación gracias,