Ju Hui wrote:

> I want to remove about 50000 elements from a list,which has 100000
> elements.
> sample code like below:
> 
>>>> a=range(10)
>>>> b=range(4)
>>>> for x in b:
> ...     a.remove(x)
> ...
>>>> a
> [4, 5, 6, 7, 8, 9]
> 
> when a and b is small size, it will finished quickly, but when a and b
> have many elements.
> such as:
>>>> a=range(100000)
>>>> b=range(50000)
>>>> for x in b:
> ...     a.remove(x)
> ...
> it will very slowly. Shall I change to another data structure and choos
> a better arithmetic?


How about a listcomprehension? 


new_list = [e for e in old_list if predicate(e)]
# Possibly you need this, too:
old_list[:] = new_list


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

Reply via email to