DrFalk3n DrFalk3n - 4 months ago 7
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

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

del lst[:]

example:

lst1 = [1, 2, 3]
lst2 = lst1
del lst1[:]
print(lst2)

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.