DrFalk3n DrFalk3n - 1 year ago 130
Python Question

How to empty a list in Python?

It seems so "dirty" emptying a list in this way:

while len(alist) > 0 : alist.pop()

Does a clear way exist to do that?

Answer Source

This actually removes the contents from the list, not replaces the old label with a new empty list

del lst[:]


lst1 = [1, 2, 3]
lst2 = lst1
del lst1[:]

For the sake of completeness, slice assignment achieves the same effect:

lst[:] = []

and can be used to shrink a part of the list while replacing a part at the same time (but is out of scope of the question).

Note that doing lst = [] does not empty the list, just creates a new object and binds it to the variable lst, but the old list will still have the same elements, and effect will be apparent if it had other variable bindings.