# Python – Find occurrences for each value of a particular key

• Last Updated : 28 Jul, 2022

Given a List of dictionaries, for a particular key, find the number of occurrences for each value of that key.

Input : test_list = [{‘gfg’ : 3, ‘best’ : 4}, {‘gfg’ : 3, ‘best’ : 5},
{‘gfg’ : 4, ‘best’ : 4}, {‘gfg’ : 7, ‘best’ : 4} ], K = ‘gfg’
Output : [{3: 2}, {4: 1}, {7: 1}]
Explanation : gfg has 2 occurrences of 3 as values.

Input : test_list = [{‘gfg’ : 3, ‘best’ : 4}, {‘gfg’ : 3, ‘best’ : 5},
{‘gfg’ : 4, ‘best’ : 4}, {‘gfg’ : 7, ‘best’ : 4} ], K = ‘best’
Output : [{4: 3}, {5: 1}]
Explanation : best has 3 occurrences of 4 as values.

Method #1 : Using groupby() + dictionary comprehension

In this, we perform grouping of key’s values using groupby() and values frequency is assembled and extracted using dictionary comprehension and len().

## Python3

 `# Python3 code to demonstrate working of``# Values Frequency grouping of K in dictionaries``# Using groupby() + dictionary comprehension``from` `itertools ``import` `groupby` `# initializing list``test_list ``=` `[{``'gfg'` `: ``3``, ``'best'` `: ``4``}, {``'gfg'` `: ``3``, ``'best'` `: ``5``},``             ``{``'gfg'` `: ``4``, ``'best'` `: ``4``}, {``'gfg'` `: ``7``, ``'best'` `: ``4``} ]` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))` `# initializing K``K ``=` `'gfg'` `# groupby() used to group values and len() to compute Frequency``res ``=` `[{key: ``len``(``list``(val))} ``for` `key, val ``in` `groupby(test_list, ``lambda` `sub: sub[K])]` `# printing result``print``(``"The Values Frequency : "` `+` `str``(res))`

Output:

The original list is : [{‘gfg’: 3, ‘best’: 4}, {‘gfg’: 3, ‘best’: 5}, {‘gfg’: 4, ‘best’: 4}, {‘gfg’: 7, ‘best’: 4}] The Values Frequency : [{3: 2}, {4: 1}, {7: 1}]

Method #2 : Using Counter()

In this, the task of performing frequency check is done using Counter(). Returns result in single dictionary.

## Python3

 `# Python3 code to demonstrate working of``# Values Frequency grouping of K in dictionaries``# Using Counter()``from` `collections ``import` `Counter` `# initializing list``test_list ``=` `[{``'gfg'` `: ``3``, ``'best'` `: ``4``}, {``'gfg'` `: ``3``, ``'best'` `: ``5``},``             ``{``'gfg'` `: ``4``, ``'best'` `: ``4``}, {``'gfg'` `: ``7``, ``'best'` `: ``4``} ]` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))` `# initializing K``K ``=` `'gfg'` `# groupby() used to group values and len() to compute Frequency``res ``=` `dict``(Counter(sub[K] ``for` `sub ``in` `test_list))` `# printing result``print``(``"The Values Frequency : "` `+` `str``(res))`

Output:

The original list is : [{‘gfg’: 3, ‘best’: 4}, {‘gfg’: 3, ‘best’: 5}, {‘gfg’: 4, ‘best’: 4}, {‘gfg’: 7, ‘best’: 4}] The Values Frequency : [{3: 2}, {4: 1}, {7: 1}]

Method #3: Using keys(),list(),set() and count() methods

## Python3

 `# Python3 code to demonstrate working of``# Values Frequency grouping of K in dictionaries` `# initializing list``test_list ``=` `[{``'gfg'` `: ``3``, ``'best'` `: ``4``}, {``'gfg'` `: ``3``, ``'best'` `: ``5``},``            ``{``'gfg'` `: ``4``, ``'best'` `: ``4``}, {``'gfg'` `: ``7``, ``'best'` `: ``4``} ]` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))` `# initializing K``K ``=` `'gfg'``x``=``[]``for` `i ``in` `test_list:``    ``if` `K ``in` `i.keys():``        ``x.append(i[K])``p``=``list``(``set``(x))``nl``=``[]``for` `i ``in` `p:``    ``d``=``{}``    ``d[i]``=``x.count(i)``    ``nl.append(d)` `# printing result``print``(``"The Values Frequency : "` `+` `str``(nl))`

Output

```The original list is : [{'gfg': 3, 'best': 4}, {'gfg': 3, 'best': 5}, {'gfg': 4, 'best': 4}, {'gfg': 7, 'best': 4}]
The Values Frequency : [{3: 2}, {4: 1}, {7: 1}]```

My Personal Notes arrow_drop_up