Python 3 - 检查字符串中的字母与下一个字母

Tor*_*d90 4 python string indexing python-3.x

如果我有一个字符串

String = 'ABCEEFGH'
Run Code Online (Sandbox Code Playgroud)

如何在不超出索引的情况下检查每个字母旁边的字母?

for index in range(len(String)):
    if String[index] == String[index+1]: 
        print('Double')
Run Code Online (Sandbox Code Playgroud)

Pad*_*ham 5

您可以使用enumerate字符串切片到倒数第二个字符:

String = 'ABCEEFGH'

for ind,ch in enumerate(String[:-1]):
    if ch == String[ind+1]:
        print('Double')
Run Code Online (Sandbox Code Playgroud)

在您自己的代码中,逻辑是相同的len(String)-1,但枚举是正确的方法:

for index in range(len(String)-1):
    if String[index] == String[index+1]:
        print('Double')
Run Code Online (Sandbox Code Playgroud)

事实上,您只想检查任何两个相邻字符是否相同,也许使用any是最好的:

String = 'ABCEEFGH'

if any( ch == String[ind+1] for ind, ch in enumerate(String[:-1])):
        print('Double',ch)
Run Code Online (Sandbox Code Playgroud)

any一旦条件满足,就会短路并中断循环,True否则评估False是否没有匹配。