繁体   English   中英

如何查找字符是否是字符串中的最后一个字符?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM