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)
您可以使用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是否没有匹配。