DrFalk3n DrFalk3n - 1 year ago 168
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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download