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
示例,包括注释示例,计算从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's" 的数量,您只需使用 string.count("ha")
即可 return 2.
您的参数 x
和 z
是在字符串中搜索位置的起始索引和结束索引,但起始索引始终包含在内,结束索引始终不包含在内。你在 z
中存储了你想要搜索的开始索引之后的长度,而你确实应该调用
a.append(string.count("ha", x, y+1))
我尝试在 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
示例,包括注释示例,计算从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's" 的数量,您只需使用 string.count("ha")
即可 return 2.
您的参数 x
和 z
是在字符串中搜索位置的起始索引和结束索引,但起始索引始终包含在内,结束索引始终不包含在内。你在 z
中存储了你想要搜索的开始索引之后的长度,而你确实应该调用
a.append(string.count("ha", x, y+1))