通过在“;”处拆分值来计算字典列表中特定键的值计数器

Value counter for a specific key in a list of dictionaries by splitting the value at ";"

我有以下列表 'list_example'。我正在计算每种最喜欢的食物被选择了多少次。我的真实列表中的某些值可能出现在多个键上,因此它应该只计算 'favourite food'.

输入:

list_example = [{'name':'Tom','favouritefood':'Pizza;Fries;Rice'},
                {'name':'Pete','favouritefood':'Pasta;Soup'},
                {'name':'Steve','favouritefood':'Chicken;Fries'},
                {'name':'Steve','favouritefood':'Rice;Pie;Fries'},
                {'name':'Steve','favouritefood':'Chicken,Pizza;Fries'},]

输出:

Count = {'Pizza':2,'Fries':4,'Rice':2,'Soup':1,'Pasta':1,'Pie':1}
import re

list_example = [{'name': 'Tom', 'favouritefood': 'Pizza;Fries;Rice'},
                {'name': 'Pete', 'favouritefood': 'Pasta;Soup'},
                {'name': 'Steve', 'favouritefood': 'Chicken;Fries'},
                {'name': 'Steve', 'favouritefood': 'Rice;Pie;Fries'},
                {'name': 'Steve', 'favouritefood': 'Chicken,Pizza;Fries'}, ]

count = {}
for item in list_example:
    favourite_food = re.split(';|,', item['favouritefood'])
    for food in favourite_food:
        try:
            count[food] += 1
        except KeyError:
            count[food] = 1