如何统计Python列表中元素的出现次数,并将结果存入字典?
我有一个Python列表,里面包含多份点单,其中有些条目会出现多次。我想统计每个条目出现的次数,并把结果存储在一个字典中(键是菜名,值是计数)。
下面是我当前的做法,使用一个 for 循环:
orders = ["Burger", "Pizza", "Burger", "Ramen", "Pizza", "Burger"]
count_dict = {}
for item in orders:
# This throws a KeyError because the key doesn't exist yet
count_dict[item] += 1
print(count_dict)
运行这段代码时,我得到一个 KeyError。我理解这是因为在第一次向字典中添加 1 时,键并不存在。
应如何处理才是最好的、也是最Pythonic的做法?我应该使用一个 if 语句来检查键是否存在,还是Python中有内置的工具可以更高效地完成这件事?
解决方案
我想到的最符合Python风格的做法是使用 collections.Counter。
from collections import Counter
orders = ["Burger", "Pizza", "Burger", "Ramen", "Pizza", "Burger"]
count = Counter(orders)
print(count) # Counter({'Burger': 3, 'Pizza': 2, 'Ramen': 1})
print(count["Burger"]) # 3
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。