Counting items inside tuples in Python
<p>I am fairly new to python and I could not figure out how to do the following. </p>

<p>I have a list of (word, tag) tuples </p>

<pre><code>a = [('Run', 'Noun'),('Run', 'Verb'),('The', 'Article'),('Run', 'Noun'),('The', 'DT')]
</code></pre>

<p>I am trying to find all tags that has been assigned to each word and collect their counts. For example, word "run" has been tagged twice to 'Noun' and once to 'Verb'. </p>

<p>To clarify: I would like to create another list of tuples that contains (word, tag, count)</p>

<p>Pretty easy with a <a href="https://docs.python.org/2/library/collections.html#collections.defaultdict" rel="nofollow"><code>defaultdict</code></a>:</p>

<pre><code>&gt;&gt;&gt; from collections import defaultdict
&gt;&gt;&gt; output = defaultdict(defaultdict(int).copy)
&gt;&gt;&gt; for word, tag in a:
...     output[word][tag] += 1
...     
&gt;&gt;&gt; output
defaultdict(&lt;function copy&gt;,
            {'Run': defaultdict(int, {'Noun': 2, 'Verb': 1}),
             'The': defaultdict(int, {'Article': 1, 'DT': 1})})
</code></pre>

python tuples