You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用collections库改进统计字符串唯一字符数的函数?

用collections.Counter优化仅出现一次字符的统计代码

你的代码核心是统计字符串中仅出现一次的字符数量,借助collections库的Counter类可以让代码更简洁、高效,完全替代手动维护两个列表的逻辑:

优化后的代码

from collections import Counter

input_str = input().strip()
char_counter = Counter(input_str)
# 统计出现次数恰好为1的字符总数
unique_char_count = sum(1 for _, count in char_counter.items() if count == 1)

print(f"Number of unique characters: {unique_char_count}")

代码说明

  • Counter的作用:Counter(input_str)会自动遍历字符串,生成一个键为字符、值为对应出现次数的哈希表结构,底层用字典实现,查找和计数的效率远高于原代码中列表的in操作(列表in是O(n)时间复杂度,Counter是O(1))。
  • 统计逻辑:通过生成器表达式遍历Counter的键值对,筛选出次数为1的字符,用sum直接统计数量,逻辑直观易懂。
  • 和原代码的一致性:原代码通过unikal和check两个列表跟踪字符出现状态,最终unikal留存的就是仅出现一次的字符,优化后的代码统计结果和原代码完全一致,但代码量减少、可读性更强。

内容的提问来源于stack exchange,提问作者Liker4ik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:40:24