python - 计算每个元素的出现次数
问题描述
我有两个列表,类似于这些
listA = ['apples','apples','oranges','pears','pears','watermelons','..']
listB = ['apples','oranges','pears','watermenols','...']
所以 listA 只是一个水果列表,其中潜在的重复项是连续的。listB 有每个水果,但只有一次,并且与 listA 的顺序相同。
是否可以计算(并打印)每种水果的数量,例如像这样的苹果 2 橙 1 梨 1 等
我认为你可以用两个循环来做到这一点,但我不太确定循环应该如何......
编辑:这应该在没有任何花哨的导入和东西的情况下完成,所以只有循环和列表等基础知识
谢谢!:)
解决方案
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}
推荐阅读
- java - 如何从 ArrayList 中获取特定对象
? - python - 如何从文本文件中导入与numpy数组格式相同的数组?
- wso2 - WSO2 2.6.0 Api Store 控制台未在 Internet Explorer 浏览器 11 上呈现示例/模型
- laravel - 访问具有一对多关系的子属性
- java - -1 如何通过热敏打印机以印地语等区域语言打印热敏打印机中的数据,印地语中的java字符串?
- java - java.lang.IllegalStateException:片段
- vba - 如何在没有活动项目的情况下处理基准日历
- java - 如何在 Spring Boot 中使用 @Transactional 注解
- c# - 获取锁定的 AD 用户列表会引发错误。我是否使用了不正确的搜索字词?
- android - 显示错误消息无法解决符号“SEND_SMS”