我正在写一个函数来检查字符串中'a'和'b'之间的距离是否为3,使用以下函数。对于输入字符串“Laura sobs”,'s'的值被存储为1(最早出现的'a')而不是4(最后一次出现'a'),并且我得到错误的输出。我该如何解决?Python:存储最早发生的字符索引,而不是最后一个
def ABCheck(str):
for i in str:
if i == 'a':
s = str.index(i)
elif i == 'b':
t = str.index(i)
# print (b)
return (abs(s-t)==4)
感谢@RemcoGerlich,它在我使用'枚举'但'enumerate(s [:3])'不起作用时起作用。你能解释这部分吗? “你不需要重复最后一部分”是什么意思?是的,我不使用'str'作为变量名,它来自网站:) – Sri
我的意思是'-3'。因为如果你在最后三个字符中找到一个'a',那么没有足够的空间让'b'有三个字符,所以不需要检查它们(否则你必须确保你不要在字符串结束之后的索引)。 – RemcoGerlich
非常感谢!我学到了枚举函数是多么有用:)只是一个小修正,它应该是'4'而不是'3'并且添加s [idx-4] =='b'与'或' – Sri