[英]How to find if character is the last character in a string?
如何有效地检查在for循环内的字符是否位于字符串的最后位置?
喜欢:
string = "daffyduck'd"
我会做到这一点
for char in string:
if char == string[-1]:
break
但是,只要有一个与最后一个元素匹配的字符,此操作就会过早结束,因此不起作用。 我正在处理成对的字符,因此在for循环中时,我正在执行current_index和current_index + 1操作,因此在不知道最后一个元素的情况下,我将获得超出范围错误的字符串索引。
我正在处理成对的字符,因此在for循环中时,我正在执行current_index和current_index + 1操作,因此在不知道最后一个元素的情况下,我将获得超出范围错误的字符串索引。
如果您想要做的是一次处理两个相邻的字符,则不要使用索引,而只需将实际的字符串zip
为具有相同字符串而没有第一个字符的字符串,就像这样
>>> input_string = "daffyduck'd"
>>> for char1, char2 in zip(input_string, input_string[1:]):
... print(char1, char2)
...
...
d a
a f
f f
f y
y d
d u
u c
c k
k '
' d
注意:您的原始方法也有问题,如果最后一个字符出现在字符串中间某处怎么办? 这种情况会使循环立即中断
if char == string[-1]:
而是使用enumerate
函数,如下所示
for index, char in enumerate(input_string):
if index + 1 == len(input_string):
break
enumerate
将在每次迭代中给出可迭代的当前索引和实际项。 因此,您可以检查当前索引+ 1是否等于字符串的长度,以确保您确实位于字符串的最后位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.