Diferentes formas de borrar listas

Resuelto johannix asked hace 15 años • 8 respuestas

¿Hay alguna razón para hacer algo más complicado que una de estas dos líneas cuando desea borrar una lista en Python?

old_list = []
old_list = list()

La razón por la que pregunto es que acabo de ver esto en un código en ejecución:

del old_list[ 0:len(old_list) ]
johannix avatar May 12 '09 08:05 johannix
Aceptado

Borrar una lista existente afectará a todas las demás referencias de la misma lista.

Por ejemplo, este método no afecta a otras referencias:

>>> a = [1, 2, 3]
>>> b = a
>>> a = []
>>> print(a)
[]
>>> print(b)
[1, 2, 3]

Pero este sí:

>>> a = [1, 2, 3]
>>> b = a
>>> del a[:]      # equivalent to   del a[0:len(a)]
>>> print(a)
[]
>>> print(b)
[]
>>> a is b
True

También puedes hacer:

>>> a[:] = []
Koba avatar May 12 '2009 02:05 Koba

Hacerlo alist = []no borra la lista, simplemente crea una lista vacía y la vincula a la variable alist. La lista anterior seguirá existiendo si tuviera otras vinculaciones de variables.

Para borrar una lista in situ , puede utilizar cualquiera de estas formas:

  1. alist.clear() # Python 3.3+, most obvious
  2. del alist[:]
  3. alist[:] = []
  4. alist *= 0 # fastest

Consulte la página de documentación sobre tipos de secuencias mutables para obtener más detalles.

Eugene Yarmash avatar Jun 03 '2017 23:06 Eugene Yarmash

Existe una forma muy sencilla de borrar una lista de Python. Usar del list_name[:].

Por ejemplo:

>>> a = [1, 2, 3]
>>> b = a
>>> del a[:]
>>> print a, b
[] []
NixMan avatar Oct 19 '2012 08:10 NixMan