Counting number of each item in a list.
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Sun Mar 19 15:36:57 EST 2006
Kent Johnson a écrit :
> sophie_newbie wrote:
>
>> Hey Bruno,
>>
>> I got an invalid syntax error when i tried using your "str_counts =
>> dict((s, str_list.count(s) for s in set(str_list))" bit of code? Maybe
>> there is a missing bracket or comma? Or maybe I need to import
>> something.
>
>
> It should be
> str_counts = dict((s, str_list.count(s)) for s in set(str_list))
Of course, my bad :(
> or for Python < 2.4
from sets import Set as set
> str_counts = dict([(s, str_list.count(s)) for s in set(str_list)])
>
> Note that this solution iterates str_list once for each element of
> str_list
once for each *distinct* element or str_list (it iterates over the set
created from str_list).
> - the call to count traverses the entire list to create the
> count. I expect Paul Rubin's solution will be dramatically faster for
> large lists as it only iterates str_list once.
Yeps. But I would benchmark it before choosing one or the other solution.
More information about the Python-list
mailing list