Python中如何按自定义key统计类实例列表各id的出现次数
实现Car实例id统计的简洁方法
你可以参考排序自定义key的思路,用以下两种简洁方案实现统计:
方案1:使用collections.Counter(最推荐,代码最简洁)
Counter原生支持直接传入可迭代对象做统计,你只需要在生成器里自定义取car.id作为统计key即可,和你排序的key用法逻辑完全一致:
from collections import Counter # 仅按id属性统计次数,hand就是你的Car实例列表 count_result = Counter(car.id for car in hand) # 按要求格式输出 for car_id, repeat_num in count_result.items(): print(f"ID {car_id} : repeated {repeat_num} times")
方案2:不用额外导入库,用普通字典实现
如果你不想导入标准库,也可以用字典的get方法手动统计,同样是自定义取car.id作为统计key:
count_result = {} for car in hand: current_id = car.id count_result[current_id] = count_result.get(current_id, 0) + 1 # 输出逻辑和方案1完全一致 for car_id, repeat_num in count_result.items(): print(f"ID {car_id} : repeated {repeat_num} times")
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

