¿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 algún código en ejecución:
del old_list[ 0:len(old_list) ]

a[:x]significa comenzar a xya[x:]significa x al final.a[ 0:len(a) ]se puede escribir comoa[:]. También puede usar negativos para contar desde el final (a[-1]es el último elemento).Respuestas:
Borrar una lista en su lugar afectará a todas las demás referencias de la misma lista.
Por ejemplo, este método no afecta a otras referencias:
Pero este sí:
También puedes hacer:
fuente
del a[:]a? Penséay hicebreferencia al mismo objeto ... Solo quiero saber por qué. Gracias.a.clear(), ¡no hay problema!Hacer
alist = []no borra la lista, solo crea una lista vacía y la vincula a la variablealist. La lista anterior seguirá existiendo si tuviera otros enlaces variables.Para borrar una lista en el lugar , puede usar cualquiera de estas formas:
alist.clear() # Python 3.3+, most obviousdel alist[:]alist[:] = []alist *= 0 # fastestConsulte la página de documentación de Tipos de secuencia mutable para obtener más detalles.
fuente
Hay una manera muy simple de borrar una lista de Python. Use del list_name [:] .
Por ejemplo:
fuente
Me parece que del le devolverá la memoria, mientras que la asignación de una nueva lista hará que la anterior se elimine solo cuando se ejecute gc.matter.Esto puede ser útil para listas grandes, pero para listas pequeñas debería ser insignificante.
Editar : como Algorias, no importa.
Tenga en cuenta que
es equivalente a
fuente
Eliminará los valores de esa variable de lista
Eliminará la variable de la memoria
fuente
Hay dos casos en los que es posible que desee borrar una lista:
old_listmás adelante en su código;En el caso 1, simplemente continúe con la tarea:
En el caso 2, la
deldeclaración reduciría el recuento de referencias al objeto de lista al queold listapunta el nombre . Si el nombre de la lista solo apuntaold_listal objeto, el recuento de referencia sería 0 y el objeto se liberaría para la recolección de elementos no utilizados.fuente
Si está limpiando la lista, obviamente, ya no la necesita. Si es así, puede eliminar toda la lista con el método simple del.
Pero en caso de que lo necesite nuevamente, puede reiniciarlo. O simplemente borrar sus elementos por
fuente
Otra solución que funciona bien es crear una lista vacía como una lista vacía de referencia.
por ejemplo tienes una lista como
a_list = [1,2,3]. Para borrarlo solo haga lo siguiente:esto hará
a_listuna lista vacía al igual queempt_list.fuente