如何编写分析字符串、统计hashtag并生成计数字典的程序
实现思路
我们可以通过正则表达式快速匹配符合规则的hashtag,实现逻辑如下:
- 匹配规则完全贴合需求:
#后第一个字符必须是大小写字母,后续可跟大小写字母/数字,对应正则表达式为r'#([a-zA-Z][a-zA-Z0-9]*)',其中括号为捕获组,可直接提取出需要统计的hashtag内容 - 遍历所有输入帖子,逐句匹配所有符合规则的hashtag
- 用字典存储计数,每匹配到一个标签就给对应键的数值+1
完整可运行代码
import re def analyze(posts): count_dict = {} # 定义符合规则的hashtag匹配模式 pattern = r'#([a-zA-Z][a-zA-Z0-9]*)' for post in posts: # 提取当前帖子中所有有效hashtag valid_tags = re.findall(pattern, post) for tag in valid_tags: # 累计计数 count_dict[tag] = count_dict.get(tag, 0) + 1 return count_dict posts = [ "hi #weekend", "good morning #madrid #fun", "spend my #weekend in #madrid", "#madrid <3"] print(analyze(posts))
运行后输出结果和预期完全一致:{'weekend': 2, 'madrid': 3, 'fun': 1}
如果不想依赖正则库,也可以手动遍历字符串的每个字符,定位#后校验后续字符规则,自行截取有效标签内容,正则方案是更简洁不易出错的选择。
内容的提问来源于stack exchange,提问作者codingbeginner
相关产品推荐
相关产品推荐

