Python字符串分析,计算子字符串错误
我尝试在Python中计算字符串中的子字符串Python字符串分析,计算子字符串错误,python,string,counting,Python,String,Counting,我尝试在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 onc
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
示例,包括注释示例,计算从he
到ha
的正确子字符串:
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”的数量,只需使用
string.count(“ha”)
,它将返回2。您的参数x
和z
是字符串中搜索位置的开始索引和结束索引,但开始索引总是包含的,结束索引总是非包含的。您在z
中存储了要从中搜索的开始索引之后的长度,而您实际上应该调用该索引
a.append(string.count("ha", x, y+1))
@WaterInButtle,但您计算的是长度,而不是结束索引。您正在使用6,8的开始、结束,而它应该是6,13。但是如果我有“aaaaa hehabdhaaaaaaaaaa”,我只想在hehabdha子字符串中计数。谢谢您的回答。我输入:a.append(string.count(“ha”,x,string.rindex(“ha”)+2)),现在就可以了。