Pythonic way to count sequences

Serhiy Storchaka storchaka at gmail.com
Thu Apr 25 08:36:47 EDT 2013


25.04.13 08:26, Chris Angelico написав(ла):
> So you can count them up directly with a dictionary:
>
> count = {}
> for sequence_tuple in list_of_tuples:
>      count[sequence_tuple] = count.get(sequence_tuple,0) + 1

Or alternatives:

count = {}
for sequence_tuple in list_of_tuples:
      if sequence_tuple] in count:
           count[sequence_tuple] += 1
      else:
           count[sequence_tuple] = 1

count = {}
for sequence_tuple in list_of_tuples:
      try:
           count[sequence_tuple] += 1
      except KeyError:
           count[sequence_tuple] = 1

import collections
count = collections.defaultdict(int)
for sequence_tuple in list_of_tuples:
      count[sequence_tuple] += 1

But of course collections.Counter is a preferable way now.





More information about the Python-list mailing list