在Python中计算元组内的项目

时间:2016-09-19 21:46:44

标签: python tuples

我是python的新手,我无法弄清楚如何执行以下操作。

我有一个(word,tag)元组列表

a = [('Run', 'Noun'),('Run', 'Verb'),('The', 'Article'),('Run', 'Noun'),('The', 'DT')]

我正在尝试查找已分配给每个单词的所有标签并收集其计数。例如,word" run"已被标记两次“名词”。一次到'动词'。

澄清:我想创建另一个包含(单词,标记,计数)的元组列表

2 个答案:

答案 0 :(得分:2)

使用defaultdict非常简单:

view_context

答案 1 :(得分:2)

您可以使用collections.Counter

>>> import collections

>>> a = [('Run', 'Noun'),('Run', 'Verb'),('The', 'Article'),('Run', 'Noun'),('The', 'DT')]
>>> counter = collections.Counter(a)
Counter({('Run', 'Noun'): 2, ('Run', 'Verb'): 1, ... })

>>> result = {}
>>> for (tag, word), count in counter.items():
...     result.setdefault(tag, []).append({word: count})

>>> print(result)
{'Run': [{'Noun': 2}, {'Verb': 1}], 'The': [{'Article': 1}, {'DT': 1}]}