fast way to filter a set?
Peter Otten
__peter__ at web.de
Wed Sep 17 13:22:14 EDT 2003
Fortepianissimo wrote:
> I know I can do things like
>
> s=Set(range(1,11))
> s=Set(filter(lambda x:x%2==0,s))
>
> But this seems a bit slow since filter returns a list which then must
> be converted back to a set. Any tips? Thanks!
The Set constructor accepts any iterable, so you can do it all with
iterators instead of temporary lists:
from sets import Set
from itertools import ifilter
s = Set(range(1, 11))
print Set(ifilter(lambda x: x % 2 == 0, s))
Peter
More information about the Python-list
mailing list