Python 字符串分析,计算子字符串错误

Python string analyze, counting a substrings error

我尝试在 Python 中计算我的字符串中的子字符串。

string = "aaaaahehabdha" 

x = string.index("he") #5
y = string.rindex("ha") #11
z = y - x + 2 #lenght of substring 11 - 5 + 2 = 8

a = []
a.append(string.count("he", x, z)) #1
a.append(string.count("ha", x, z)) #count only once"ha" but in substring I have 2 x "ha"
print(a) # [1,1]

为什么 string.count("ha", x, z) 只计数一次 "ha" ? 提前致谢。

.count的第三个参数不是长度,而是不包含结束索引。要计算正确的终点:

z = y + 2

示例,包括注释示例,计算从heha的正确子串:

string = "aaaaahehabdha" 
x = string.index("he")
y = string.rindex("ha")
z = y + 2
print('substring:',string[x:z])

string = "aaaaahehabdhaaaaaaaaaaa" 
x = string.index("he")
y = string.rindex("ha")
z = y + 2
print('substring:',string[x:z])

输出:

substring: hehabdha
substring: hehabdha

如果您只想计算子字符串中 "ha's" 的数量,您只需使用 string.count("ha") 即可 return 2.

您的参数 xz 是在字符串中搜索位置的起始索引和结束索引,但起始索引始终包含在内,结束索引始终不包含在内。你在 z 中存储了你想要搜索的开始索引之后的长度,而你确实应该调用

a.append(string.count("ha", x, y+1))