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