varios vaciar una ultimo registros numero listas lista limpiar eliminar elementos elemento diccionario datos como borrar python list error-handling elements

python - vaciar - ¿Cómo puedo ignorar ValueError cuando intento eliminar un elemento de una lista?



python lista eliminar (3)

¿Cómo puedo ignorar el mensaje de error "no en la lista" si llamo a.remove(x) cuando x no está presente en la lista a ?

Esta es mi situación:

>>> a = range(10) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a.remove(10) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list >>> a.remove(9)


Como alternativa a ignorar el ValueError

try: a.remove(10) except ValueError: pass # do nothing!

Creo que lo siguiente es un poco más sencillo y legible:

if 10 in a: a.remove(10)


Personalmente, consideraría usar un set lugar de una list siempre y cuando el orden de sus elementos no sea necesariamente importante. Luego puedes usar el método de descarte:

>>> S = set(range(10)) >>> S set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> S.remove(10) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 10 >>> S.discard(10) >>> S set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])


Una forma buena y segura de hacerlo es simplemente probarlo e ignorar la excepción:

try: a.remove(10) except ValueError: pass # do nothing!