Python 小技巧:用 Counter 与字典推导让统计代码更短

举报
yd_283969375 发表于 2026/10/27 00:19:13 2026/10/27
【摘要】 统计出现次数是 Python 里很常见的需求。很多人会先写空字典,再用循环判断键是否存在,代码又长又容易出错。下面两个小技巧可以写得更短、更清晰。 1. 用 Counter 一行统计from collections import Counterwords = ["云", "端", "云", "开发", "云"]print(Counter(words))结果是 Counter({‘云’: 3,...

统计出现次数是 Python 里很常见的需求。很多人会先写空字典,再用循环判断键是否存在,代码又长又容易出错。下面两个小技巧可以写得更短、更清晰。

1. 用 Counter 一行统计

from collections import Counter
words = ["云", "端", "云", "开发", "云"]
print(Counter(words))

结果是 Counter({‘云’: 3, ‘端’: 1, ‘开发’: 1}),键是元素,值是次数。取 most_common(2) 就能得到最多的前两项,不用自己排序。

2. 用字典推导做转换

拿到统计结果后,常要再加工,例如转成占比:

counts = Counter(words)
rate = {k: round(v / len(words), 2) for k, v in counts.items()}
print(rate)

一行就完成遍历、计算和建字典,比先建空字典再循环赋值更直观。注意推导里不要写太复杂的逻辑,否则可读性反而下降。

小结

需要统计时先想 Counter,需要转换时先想字典推导。两者结合,能把十几行循环压缩成两三行。先保证结果正确,再追求简洁;逻辑变复杂时,拆成两步写反而更容易维护。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。