Как насчет этого: это дает вам набор дней, а также счет:
In [39]: from itertools import groupby ##itertools is a part of the standard library.
In [40]: l=[[1, '2008-12-01'],
....: [1, '2008-12-01'],
....: [2, '2008-12-01'],
....: [1, '2008-12-01'],
....: [3, '3008-12-04']]
In [41]: l.sort()
In [42]: l
Out[42]:
[[1, '2008-12-01'],
[1, '2008-12-01'],
[1, '2008-12-01'],
[2, '2008-12-01'],
[3, '3008-12-04']]
In [43]: for key, group in groupby(l, lambda x: x[0]):
....: group=list(group)
....: print key,' :: ', len(group), ' :: ', group
....:
....:
1 :: 3 :: [[1, '2008-12-01'], [1, '2008-12-01'], [1, '2008-12-01']]
2 :: 1 :: [[2, '2008-12-01']]
3 :: 1 :: [[3, '3008-12-04']]
пользователь :: количество посещений :: даты посещения
Здесь пользователь -1 посещает 2008-12-01 3 раза, если вы хотите считать только разные даты, тогда
for key, group in groupby(l, lambda x: x[0]):
group=list(group)
print key,' :: ', len(set([(lambda y: y[1])(each) for each in group])), ' :: ', group
....:
....:
1 :: 1 :: [[1, '2008-12-01'], [1, '2008-12-01'], [1, '2008-12-01']]
2 :: 1 :: [[2, '2008-12-01']]
3 :: 1 :: [[3, '3008-12-04']]