如何在字符串列表中查找目标字母序列并统计其出现总次数
Python实现统计子串出现总次数
你可以直接使用Python内置的str.count()方法完成统计,该方法默认统计字符串中不重叠子串的出现次数,刚好匹配你的需求。
基础实现写法
lst1 = ['abc', 'abcde', 'abab', 'acd'] target = 'ab' count_sum = 0 # 遍历所有列表元素累加子串次数 for item in lst1: count_sum += item.count(target) # 构造结果字典 res = {target: count_sum} print(res)
运行后输出结果为:{'ab': 4}
简化写法
你也可以用生成器表达式配合sum()函数,一行完成统计:
lst1 = ['abc', 'abcde', 'abab', 'acd'] res = {'ab': sum(s.count('ab') for s in lst1)}
注意事项
如果你的场景需要统计重叠子串(比如'ababa'中统计'aba'需要算2次而非1次),则需要单独实现重叠子串统计逻辑,当前需求使用内置的count()方法即可满足。
内容的提问来源于stack exchange,提问作者Ofri Swift
相关产品推荐
相关产品推荐

