Is there a better/simpler way to filter blank lines?

Steven D'Aprano steven at REMOVE.THIS.cybersource.com.au
Tue Nov 4 22:07:20 EST 2008


On Tue, 04 Nov 2008 20:25:09 -0500, Steve Holden wrote:

> I think there'd be no advantage to a sort method on a generator, since
> theoretically the last item could be the first required in the sorted
> sequence, so it's necessary to hold all items in memory to ensure the
> sort is correct. So there's no point using a generator in the first
> place.


You can't sort something lazily.

Actually, that's not *quite* true: it only holds for comparison sorts. 
You can sort lazily using non-comparison sorts, such as Counting Sort:

http://en.wikipedia.org/wiki/Counting_sort

Arguably, the benefit of giving generators a sort() method would be to 
avoid an explicit call to list. But I think many people would argue that 
was actually a disadvantage, not a benefit, and that the call to list is 
a good thing. I'd agree with them.

However, sorted() should take a generator argument, and in fact I see it 
does:

>>> sorted( x+1 for x in (4, 2, 0, 3, 1) )
[1, 2, 3, 4, 5]



-- 
Steven



More information about the Python-list mailing list