A Counter is definitely the way to go about this. Just as a little more information. The below example can be simplified:

    from collections import Counter
    count = Counter(mylist)

With the other example, you could have achieved the same thing (and been backward compatible to python2.5) with

   from collections import defaultdict
   count = defaultdict(int)
   for k in mylist:
        count[k] += 1



On 4/25/13 9:16 PM, Modulok wrote:
On 4/25/13, Denis McMahon <denismfmcma...@gmail.com> wrote:
On Wed, 24 Apr 2013 22:05:52 -0700, CM wrote:

I have to count the number of various two-digit sequences in a list such
as this:

mylist = [(2,4), (2,4), (3,4), (4,5), (2,1)]  # (Here the (2,4) sequence
appears 2 times.)

and tally up the results, assigning each to a variable.
...

Consider using the ``collections`` module::


     from collections import Counter

     mylist = [(2,4), (2,4), (3,4), (4,5), (2,1)]
     count = Counter()
     for k in mylist:
         count[k] += 1

     print(count)

     # Output looks like this:
     # Counter({(2, 4): 2, (4, 5): 1, (3, 4): 1, (2, 1): 1})


You then have access to methods to return the most common items, etc. See more
examples here:

http://docs.python.org/3.3/library/collections.html#collections.Counter


Good luck!
-Modulok-

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

Reply via email to