如何用一行代码将字符串转换为字典以统计字符出现次数?
一行代码实现字符串字符出现次数统计
当然可以用一行代码实现需求,这里提供两种常用方案:
方案一:使用内置collections.Counter(推荐)
这是Python官方提供的专门用于计数的工具,简洁且高效:
from collections import Counter char_count = Counter('leet')
执行后char_count会返回一个类字典对象,直接使用和普通字典无异;若需要严格的字典类型,可转成普通字典:
char_count = dict(Counter('leet'))
最终结果就是{'l':1,'e':2,'t':1}。
方案二:纯基础语法实现(无需额外模块)
利用字典推导式结合字符串的count()方法,也能一行完成:
char_count = {c: 'leet'.count(c) for c in set('leet')}
原理是先通过set获取字符串中的唯一字符,再遍历每个字符调用count()统计出现次数。注意:这种方法对长字符串效率较低,因为每个count()都会完整遍历一次原字符串。
你原来的循环写法逻辑没问题,适合理解计数的底层逻辑,但上述一行代码能更简洁地完成需求。
内容的提问来源于stack exchange,提问作者Zeus
相关产品推荐
相关产品推荐

