Chris Rebert wrote:

> On Mon, Nov 3, 2008 at 1:40 AM, 一首诗 <[EMAIL PROTECTED]> wrote:
>> Hi all,
>>
>> Today I wrote some code like this:
>>
> 
> Build a new list as you go, then overwrite the old list with it.
> 
> unfinished = []
> 
>>        for m in self.messages:
>>            if not m.finished:
>                   unfinished.append(m)
>>                continue
>>
>>            #process the message
>>
> 
> Remove the following code
> 
>>        fini = [m for m in self.messages if m.finished]
>>        for m in fini:
>>            self.messages.remove(m)
> 
> self.messages[:] = unfinished

Just

self.messages = unfinished

if also OK unless you have multiple references to the self.messages list.
 
> This way you aren't calling .remove() multiple times and only iterate
> through the list once.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to