Skip to main content

Counter package defines the "counter.Counter" class similar to bags or multisets in other languages.

Project description

https://secure.travis-ci.org/KelSolaar/Counter.png?branch=master

Introduction

Counter package defines the counter.Counter class similar to bags or multisets in other languages. This package is created from Raymond Hettinger recipe: http://code.activestate.com/recipes/576611/

Installation

To install Foundations from the Python Package Index you can issue this command in a shell:

pip install Counter

or this alternative command:

easy_install Counter

Alternatively, if you want to directly install from Github source repository:

git clone git://github.com/KelSolaar/Counter.git
python setup.py install

Usage

For precise usage examples, please refer to the original recipe: http://code.activestate.com/recipes/576611/ and Python documentation: http://docs.python.org/library/collections.html#collections.Counter

  • Tally occurrences of words in a list:

    >>> cnt = Counter()
    >>> for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
    ...     cnt[word] += 1
    >>> cnt
    Counter({'blue': 3, 'red': 2, 'green': 1})
    
  • Find the ten most common words in Hamlet:

    >>> import re
    >>> words = re.findall('\w+', open('hamlet.txt').read().lower())
    >>> Counter(hamlet_words).most_common(10)
    [('the', 1143), ('and', 966), ('to', 762), ('of', 669), ('i', 631),
     ('you', 554),  ('a', 546), ('my', 514), ('hamlet', 471), ('in', 451)]
    
  • Multiset examples:

    >>> c = Counter(a=3, b=1)
    >>> d = Counter(a=1, b=2)
    >>> c + d                           # add two counters together:  c[x] + d[x]
    Counter({'a': 4, 'b': 3})
    >>> c - d                           # subtract (keeping only positive counts)
    Counter({'a': 2})
    >>> c & d                           # intersection:  min(c[x], d[x])
    Counter({'a': 1, 'b': 1})
    >>> c | d                           # union:  max(c[x], d[x])
    Counter({'a': 3, 'b': 2})
    

About

Counter by Raymond Hettinger – 2009
Copyright© 2009 - Raymond Hettinger
This software is released under terms of MIT license: http://opensource.org/licenses/mit-license.php

Project details


Release history Release notifications

This version
History Node

1.0.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
Counter-1.0.0.tar.gz (5.2 kB) Copy SHA256 hash SHA256 Source None Sep 19, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page