Python中如何使用Counter模块删除字符串中出现两次的字符
Python实现方案(优先使用Counter模块)
需求说明
现有字符串为"aabbcdb",需要删除其中出现次数恰好为两次的字符,期望运行结果为'cdb'。
实现步骤
- 从
collections模块导入Counter工具类,用于快速统计字符串中各字符的出现频次 - 调用
Counter统计输入字符串所有字符的出现次数 - 遍历原字符串,先过滤掉出现次数恰好等于2的字符,对出现次数大于2的字符仅保留最后一次出现,拼接得到符合预期的结果
完整代码
from collections import Counter s = "aabbcdb" # 统计字符出现频次 char_freq = Counter(s) # 记录每个字符最后一次出现的索引 last_occur_idx = {} for index, char in enumerate(s): last_occur_idx[char] = index result = [] for index, char in enumerate(s): # 跳过出现次数恰好为2的字符 if char_freq[char] == 2: continue # 出现次数大于2的字符仅保留最后一次出现 if char_freq[char] > 2 and index != last_occur_idx[char]: continue result.append(char) print(''.join(result))
运行结果
执行上述代码后输出为:cdb,符合预期要求。
内容的提问来源于stack exchange,提问作者Pratik Bawane.
相关产品推荐
相关产品推荐

