我想比较字符串中的以下字符,如果它们相等,则提高计数器。 使用我的示例代码,我总是得到与第6行相关的TypErrors。 你知道问题出在哪里吗?
谢谢!
def func(text):
counter = 0
text_l = text.lower()
for i in text_l:
if text_l[i+1] == text_l[i]:
print(text_l[i+1], text_l[i])
counter += 1
return counter
答案 0 :(得分:2)
i
不是索引。您的for
将直接迭代元素,因此i
在任何时间点都是字符,而不是整数。如果需要索引,请使用range
函数:
for i in range(len(text_l) - 1): # i is the current index
if text_l[i + 1] == text_l[i]:
您还可以使用enumerate
:
for i, c in enumerate(text_l[:-1]): # i is the current index, c is the current char
if text_l[i + 1] == c:
在任何一种情况下,您都希望迭代直到倒数第二个字符,因为您在IndexError
的最后一次迭代中点击i + 1
为i + 1
,超出了最后一个角色。