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

如何统计字符串中不同字符的数量(而非出现次数)?

统计字符串中不同字符的数量

最简洁的方法:用集合去重

Python里的集合天然会自动剔除重复元素,把字符串转成集合后,直接取长度就是不同字符的数量:

test_str = "aabbccddee"
unique_char_count = len(set(test_str))
print(unique_char_count)  # 输出结果:5

原理:set(test_str)会将字符串转换为包含所有不重复字符的集合{'a', 'b', 'c', 'd', 'e'},len()函数直接返回这个集合的元素个数。

用你试过的defaultdict实现

如果想用defaultdict,可以通过遍历字符串记录所有出现过的字符,最后统计字典的键的数量:

from collections import defaultdict

test_str = "aabbccddee"
char_recorder = defaultdict(int)
for char in test_str:
    char_recorder[char] += 1  # 这里计数只是标记字符存在,数值不重要
unique_char_count = len(char_recorder)
print(unique_char_count)  # 输出结果:5

也可以不用计数,直接用普通字典标记字符存在:

char_recorder = {}
for char in test_str:
    char_recorder[char] = True  # 只要键存在就代表字符出现过
unique_char_count = len(char_recorder)

为什么你之前的尝试没达到预期?

  • len()直接作用于字符串,统计的是总字符数,不是去重后的数量;
  • count()方法需要指定单个字符,只能统计某一个字符的出现次数,无法直接得到所有不同字符的总数;

内容的提问来源于stack exchange,提问作者Tiến Thành Phạm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:35:31