clear derived list

Jp Calderone exarkun at
Wed Mar 12 00:39:11 CET 2003

On Tue, Mar 11, 2003 at 05:08:26PM -0600, John Hunter wrote:
> I have a class derived from a list.  I want to be able to set the list
> from another list, first clearing the existing members.  I don't see
> an analog to the clear method of dictionaries.
> Here is what I am doing now
> class mylist(list):
>     def set(self, seq):
>         # flush the old list
>         [self.pop() for i in range(len(self))]
>         self.extend(seq)

  Aside from the obvious problem, I want to point out that this is a
terrible abuse of list comprehensions.  This is not the point.  A good rule
of thumb is that if you're not storing the result of a list comprehension,
you should -not- be using a list comprehension.

  Now, here are a couple alternatives:

    del self[:]


    self[:] = seq


A disciple of another sect once came to Drescher as he was eating his
morning meal. "I would like to give you this personality test," said the
outsider, "because I want you to be happy." Drescher took the paper that was
offered him and put it into the toaster: "I wish the toaster to be happy, 
 up 8 days, 15:59, 8 users, load average: 0.22, 0.13, 0.04

More information about the Python-list mailing list