Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中比较字符串中的字符_Python_String - Fatal编程技术网

在Python中比较字符串中的字符

在Python中比较字符串中的字符,python,string,Python,String,我想比较字符串中的以下字符,如果它们相等,则提高计数器。 在我的示例代码中,我总是得到与第6行相关的类型错误。 你知道问题出在哪里吗 谢谢大家! 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]) counte

我想比较字符串中的以下字符,如果它们相等,则提高计数器。 在我的示例代码中,我总是得到与第6行相关的类型错误。 你知道问题出在哪里吗

谢谢大家!

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
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]:
您还可以使用
枚举

for i, c in enumerate(text_l[:-1]): # i is the current index, c is the current char
    if text_l[i + 1] == c:  

在这两种情况下,您都希望迭代到倒数第二个字符,因为在最后一次迭代中,您将使用
i+1
命中
索引器,因为
i+1
超出了最后一个字符的边界。

对于文本中的i:
迭代单个字符,因此在每次迭代中
键入(i)==str
。此代码中有一个错误,因为
i+1
将越界。@ForceBru谢谢!修正了,哈哈,很简单。谢谢