Getting a specific key and value from a list of dictionaries

Viewed 13764

So I have this list of dictionaries:

l = [{'COUNTRY': 'UK', 'STUDENT': 'JOHN'}, {'COUNTRY': 'PT', 'STUDENT':'PEDRO'}, {'COUNTRY': 'UK', 'STUDENT': 'KYLE'}, {'COUNTRY': 'IT', 'STUDENT':'PIRLO'}, {'COUNTRY': 'PT', 'STUDENT':'ANA'}, {'COUNTRY': 'FR', 'STUDENT':'VITO'}, {'COUNTRY': 'FR', 'STUDENT':'LOUIS'}]

I need to make a bar chart with the x axis being the countries that are on the list and and y axis being the number of times each country appears. My idea was to 'extract' those countries to a list, like this:

country_list = ['UK','PT','UK','IT','PT','FR','FR']

Then I would have to count how many times does each country appears and sort the list by frequency.

After all that is done I would have two lists:

country = ['UK','PT','FR','IT']

frequency = [2,2,2,1]

With these two lists I would be able to make the bar chart. How can I get those two lists from the original list of dictionaries?

3 Answers
#You can solve this problem easily by using lambda function:

country_list = list(map(lambda dict: dict['COUNTRY'], list))

# You can count the same data by using Counter function:

from collections import Counter 
counter = Counter(country_list)
counter = ({'UK': 2, 'PT': 2, 'FR': 2, 'IT': 1})
Related