如何用Python统计字符串中仅出现一次的唯一字母总数?
统计字符串中仅出现一次的唯一字母总数
嘿,我来帮你搞定这个问题!你的代码之所以返回字符串总长度,是因为if x in a这个判断逻辑不对——x本来就是从字符串a里遍历出来的,所以这个条件永远为真,每循环一次count就加1,最后自然得到的是字符串的总长度啦。
要统计仅出现一次的字符数量,我们需要先记录每个字符的出现次数,再筛选出次数为1的字符并计数。这里有两种简单的实现方式:
方法一:使用collections.Counter(推荐)
Python的collections模块里的Counter工具专门用来统计可迭代对象中元素的出现次数,用它来实现需求非常简洁:
from collections import Counter a = 'abhishek' # 统计每个字符的出现次数 char_counts = Counter(a) # 遍历计数结果,累加出现次数为1的字符数量 unique_single_count = sum(1 for char, count in char_counts.items() if count == 1) print(unique_single_count) # 输出:6
方法二:手动用字典统计
如果你不想用内置模块,也可以自己用字典来记录每个字符的出现次数:
a = 'abhishek' count_dict = {} # 第一步:遍历字符串,记录每个字符的出现次数 for char in a: if char in count_dict: count_dict[char] += 1 else: count_dict[char] = 1 # 第二步:统计出现次数为1的字符数量 unique_single_count = 0 for count in count_dict.values(): if count == 1: unique_single_count += 1 print(unique_single_count) # 输出:6
针对你的示例字符串'abhishek',字符h出现了2次,其余的a、b、i、s、e、k各出现1次,所以最终结果是6,符合我们的预期。
内容的提问来源于stack exchange,提问作者Abhishek Kumar
相关产品推荐
相关产品推荐

