首页 > 解决方案 > 计算每个元素的出现次数

问题描述

我有两个列表,类似于这些

listA = ['apples','apples','oranges','pears','pears','watermelons','..']
listB = ['apples','oranges','pears','watermenols','...']

所以 listA 只是一个水果列表,其中潜在的重复项是连续的。listB 有每个水果,但只有一次,并且与 listA 的顺序相同。

是否可以计算(并打印)每种水果的数量,例如像这样的苹果 2 橙 1 梨 1 等

我认为你可以用两个循环来做到这一点,但我不太确定循环应该如何......

编辑:这应该在没有任何花哨的导入和东西的情况下完成,所以只有循环和列表等基础知识

谢谢!:)

标签: pythonlist

解决方案


Pythonic 计算对象的方法是从集合中使用 Python 的 Counter

from collections import Counter

listA = ['apples','apples','oranges','pears','pears','watermelons',]
res = dict(Counter(listA))
print (res)

# {'apples': 2, 'oranges': 1, 'pears': 2, 'watermelons': 1}

基本方式:

listA = ['apples','apples','oranges','pears','pears','watermelons',]
result = {}

for fruit in listA:
   if fruit in result:
       result[fruit] += 1
   else:
       result[fruit] = 1

print(result)
# {'apples': 2, 'oranges': 1, 'pears': 2, 'watermelons': 1}

推荐阅读