Me resulta molesto que no puedo borrar una lista. En este ejemplo:Borrar una lista
a = []
a.append(1)
a.append(2)
a = []
La segunda vez que inicializar una a una lista en blanco, se crea una nueva instancia de una lista, que está en un lugar diferente en la memoria, por lo que no se puede utilizar para hacer referencia a la primero, sin mencionar que es ineficiente.
La única forma que veo de retener el mismo puntero está haciendo algo como lo siguiente:
for i in range(len(a)):
a.pop()
Esto parece bastante largo aliento sin embargo, hay una mejor manera de resolver esto?
Amplíe "que está en un lugar diferente en la memoria, por lo que no puedo usarlo para hacer referencia al primero" Esto tiene muy poco sentido en un contexto de Python. Quizás en C++, pero no en Python. –
Simplemente estaba señalando que si tengo una referencia a este objeto desde otro objeto, la 'nueva' a es ahora una diferente a la primera, por lo que no puedo usar esta misma referencia para modificar la nueva a. Python todavía tiene el concepto de punteros y administración de memoria, simplemente lo oculta. – Dan
"la 'nueva' a es ahora una diferente a la primera" Si bien es absolutamente cierto, no puedo ver una situación en la que esto importe. Un ejemplo de código más completo podría ayudar a explicar dónde esto realmente importaría. –