嗨,我想写一个函数,可以告诉你有多少次不同的相邻字符退出字符串。i、 e LOLOLO有5次不同的相邻词。我试过很多次了,但每次我跑,我都会失败error:- line 5,在相邻的\u编号中
如果c!=字符串[i+1]:
索引器错误:字符串索引超出范围
def adjacent_numbers(string):
count = 0
i = 0
for i,c in enumerate(string):
if c != string[i+1] :
count += 1
i += 1
return count
Tags:
当到达字符串末尾并要求输入不存在的“next”字符时,就会发生错误。当
i
是字符串中的最后一个索引(它被绑定在循环的末尾)时,请求string[i+1]
是没有意义的。您可以使用切片表示法对减去最后一个字符的字符串进行迭代:for i, c in enumerate(string[:-1]): ...
代码高尔夫
索引不能超过字符串长度,可以使用
string[:-1]
从末尾对一个进行切片,但可以避免切片。可以使用for循环和iter
:输出:
您还可以使用enumerate欺骗一点,您可以使用不会导致索引器错误的切片,您还可以使用内置的
sum
函数来进行计数:enumerate还接受一个start arg,在本例中是一个,因此我们从第二个字符开始索引
对自己的循环应用相同的逻辑:
i
在您的代码中也不需要,所以我删除了它,您不需要在python中初始化变量,i
在循环中可以很好地工作相关问题 更多 >
编程相关推荐