Если вы ищете сумму по одному конкретному ключу, вы можете использовать .count()
метод списка в качестве прямого запроса.
С учетом списка диктов:
>>> employees = [{'name': 'John', 'empID': '102', 'dpt': 'tech', 'title': 'programmer', 'salary': '75'},
{'name': 'Jane', 'empID': '202', 'dpt': 'tech', 'title': 'programmer', 'salary': '80'},
{'name': 'Joe', 'empID': '303', 'dpt': 'accounting', 'title': 'accountant', 'salary': '85'}]
Вы можете создать список каждого с пониманием списка:
>>> [d['dpt'] for d in employees]
['tech', 'tech', 'accounting']
И затем можно подсчитать:
>>> [d['dpt'] for d in employees].count('tech')
2
>>> [d['dpt'] for d in employees].count('accounting')
1
>>> [d['dpt'] for d in employees].count('nothing')
0
В качестве альтернативы, вы можете создать генератор, который будетконкретные значения:
>>> sum(1 for d in employees if d['dpt']=='tech')
2
Если вы хотите иметь счетчик всех элементов (кроме использования счетчика), вы можете сделать:
>>> lot=[d['dpt'] for d in employees]
>>> {c:lot.count(c) for c in set(lot)}
{'accounting': 1, 'tech': 2}