Counting number of each item in a list.
kent at kentsjohnson.com
Sun Mar 19 15:18:45 CET 2006
> 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
It should be
str_counts = dict((s, str_list.count(s)) for s in set(str_list))
or for Python < 2.4
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 - 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.
More information about the Python-list