Using del() The del() function you can selectively remove items at a given index or you can also remove all the elements, making the list empty. In the below example we take a list, remove the element at index 2. Then we remove all the elements.
Clearing a list in place will affect all other references of the same list.
For example, this method doesn't affect other references:
>>> a = [1, 2, 3]
>>> b = a
>>> a = []
>>> print(a)
[]
>>> print(b)
[1, 2, 3]
But this one does:
>>> a = [1, 2, 3]
>>> b = a
>>> del a[:] # equivalent to del a[0:len(a)]
>>> print(a)
[]
>>> print(b)
[]
>>> a is b
True
You could also do:
>>> a[:] = []
Doing alist = []
does not clear the list, just creates an empty list and binds it to the variable alist
. The old list will still exist if it had other variable bindings.
To actually clear a list in-place, you can use any of these ways:
alist.clear() # Python 3.3+, most obvious
del alist[:]
alist[:] = []
alist *= 0 # fastest
See the Mutable Sequence Types documentation page for more details.
There is a very simple way to clear a python list. Use del list_name[:].
For example:
>>> a = [1, 2, 3]
>>> b = a
>>> del a[:]
>>> print a, b
[] []
It appears to me that del will give you the memory back, while assigning a new list will make the old one be deleted only when the gc runs.matter.
This may be useful for large lists, but for small list it should be negligible.
Edit: As Algorias, it doesn't matter.
Note that
del old_list[ 0:len(old_list) ]
is equivalent to
del old_list[:]
del list[:]
Will delete the values of that list variable
del list
Will delete the variable itself from memory
There are two cases in which you might want to clear a list:
old_list
further in your code;In case 1 you just go on with the assigment:
old_list = [] # or whatever you want it to be equal to
In case 2 the del
statement would reduce the reference count to the list object the name old list
points at. If the list object is only pointed by the name old_list
at, the reference count would be 0, and the object would be freed for garbage collection.
del old_list
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With