С Python вы можете использовать collections.Counter
, чтобы подсчитать количество встречаемости каждого животного. Но вам нужен счетчик для каждого идентификатора элемента.
Вы можете создать словарь счетчиков, например:
import collections
items = [
('id2', u'lion'),
('id5', u'dolphin'),
('id2', u'tiger'),
('id2', u'lion'),
('id3', u'dolphin'),
('id3', u'monkey'),
]
counters = collections.defaultdict(collections.Counter)
for item_id, animal in items:
counters[item_id][animal] += 1
print(counters)
Вывод:
defaultdict(<class 'collections.Counter'>,
{'id2': Counter({'lion': 2, 'tiger': 1}),
'id3': Counter({'dolphin': 1, 'monkey': 1}),
'id5': Counter({'dolphin': 1})})
В результате получается словарь счетчиков.