gpt4 book ai didi

python - 计算子串出现的次数

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:59 24 4
gpt4 key购买 nike

参加 CS 类(class)的新手程序员。在带有 HPmini(Atom 处理器)笔记本电脑的 Ubuntu 14.04 中使用 Python 2.7。 How many 'ana' are in "Canada's banana analysis" 搜索到的结果应该是4而不是3,banana有2个'ana'实例'.//f.find() 会给我索引,不好。有没有办法在 for 循环内分割搜索循环,例如:if i[n:n+4] == 'ana': ?因此,在每次迭代时,它都会向前看 3 个字符并进行测试 'blah=='ana'://需要什么方法。预先感谢您对此进行调查。不需要确切的答案只是想法。我现在/最近的代码是:

  g="Canada's bananas analysis"  # main string
b='ana' # sub-string to be found
anaSt=g.count(b) # meant to count instances of 'ana'
lenG=len(g) #length of main string
k=0
for i in range(lenG):
if 'ana' in g:
k +=1
print 'k: ', k,
print '\n', lenG
print "'ana' in string: ",anaSt

最佳答案

使用 .count.find 的问题是您找不到重叠的字符串:

>>> "banana".find("ana")
1
>>> "banana".count("ana")
1

你可以这样做:

>>> g="Canada's bananas analysis"
>>> sub_string="ana"
>>> [1 for i in range(0, len(g)-len(sub_string)) if g[i:i+len(sub_string)]==sub_string]
[1, 1, 1, 1]

或者,更一步一步:

>>> count=0
>>> for i in range(0, len(g)-len(sub_string)):
... if g[i:i+len(sub_string)]==sub_string:
... count+=1
...
>>> count
4

关于python - 计算子串出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35000076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com