python - 朴素模式匹配 - 如何计算出现次数
问题描述
我在 python 中使用朴素的模式匹配函数来查找文本 t 中 p 的模式,输出返回文本 t 中 p 的出现。
但我无法编写一个计算出现次数的函数。
def naive(p, t):
occurrences = []
for i in range(len(t) - len(p) + 1): # loop over alignments
match = True
for j in range(len(p)): # loop over characters for the pattern
if t[i+j] != p[j]: # compare characters in the inner loop
match = False
break
if match:
occurrences.append(i) # all chars matched; record
return occurrences
t = ('TATACGAFGATAGAFAGAYHTATATAHHGTATATATATATATTA')
p = ('TA')
naive(p,t)
print(naive(p,t))
输出为 [0, 2, 10, 20, 22, 24, 29, 31, 33, 35, 37, 39, 42]
我想计算像 13 这样的出现次数
解决方案
使用 OS walk 后,它有助于调用目录和文件。然后使用提供所需计数的 print(len(naive(p,t)))
推荐阅读
- c# - MSDTC 服务器不可用
- python - 从 groupby 数据框创建数据框
- java - 如何检查方法的通用返回类型是否与通过参数传递的类匹配?
- c# - 当要查找的字符串具有不同的空格时提取子字符串
- django - 如何从 django admin 中删除关于覆盖删除查询集方法的默认删除确认消息?
- powershell - 在运行脚本之前检查多个文件路径是否存在
- css - 如何将 vuetify 日期选择器放在其他组件的前面?
- angular - Checkbox 选中事件在 ionChange 上被触发两次
- ios - 停止一个永远运行的动作,运行另一个动作并在 SpriteKit 中恢复停止的动作
- html - 如何在短文本时屏幕居中,但在长文本时使其与左侧的另一个元素对齐?