John Machin wrote:
> On 13/06/2006 6:28 PM, Paul McGuire wrote:
>
>   
>> (Oh, and I like groupby too!  Combine it with sort to quickly create
>> histograms.)
>>
>> # tally a histogram of a list of values from 1-10
>> dataValueRange = range(1,11)
>> data = [random.choice(dataValueRange) for i in xrange(10000)]
>>
>> hist = [ (k,len(list(g))) for k,g in itertools.groupby(sorted(data)) ]
>>     
>
> That len(list(g)) looks like it uses O(N) memory just to find out what N 
> is :-(
>   
Not at all! A python list *knows* its length at all times. len() is a
constant time lookup of an internal attribute.

Gary Herron

> The best I could come up with is sum(itertools.imap(lambda x: 1, g)) -- 
> but that does look a bit ugly ...
>
>   

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

Reply via email to