比较Python中字符串中的字符

时间:2017-08-13 11:28:14

标签: python string

我想比较字符串中的以下字符,如果它们相等,则提高计数器。 使用我的示例代码,我总是得到与第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

1 个答案:

答案 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 + 1i + 1,超出了最后一个角色。