sumlist = [
['a01', '01-24-2017', 's1'],
['a03', '01-24-2017', 's2'],
['a03', '09-24-2017', 's1'],
['a03', '10-23-2017', 's1'],
['a04', '11-01-2017', 's1'],
['a04', '11-02-2017', 's2'],
['a04', '11-03-2017', 's1'],
['a04', '01-01-2017', 's1']]
Это список списков, над которыми я работаю в настоящее время, и вопрос состоит в том, чтобы подсчитать вхождения s1 и s2 для каждого элемента (a01, a03, a04).Единственный известный мне способ - использовать count (), но он работает только для одного элемента.
После того, как я использовал Counter и default (Спасибо за помощь @JPP!):
d = defaultdict(Counter)
for animal, date, station in sumlist:
d[animal][station] += 1
Я получаю:
defaultdict(<class 'collections.Counter'>,
{'a04': Counter({'s2': 5, 's1': 5}),
'a01': Counter({'s1': 2, 's2': 1}),
'a03': Counter({'s1': 6, 's2': 4})}
Есть числа вхождений, но есть ли способ сделать два словаря вроде:
{a01: number of occurrences of S1, a04: the number of occureneces of S1, a03: number of occurrences of S1}
и такой же для S2?
Большое спасибо!