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

时间:2015-02-22 06:23:16

标签: python string

如何有效地检查for循环中的字符是否在字符串的最后位置?

像:

string = "daffyduck'd"

我会通过

完成此操作
for char in string:
  if char == string[-1]:
    break

但是,只要有一个匹配最后一个元素的char,就会过早地结束,所以这不起作用。我正在处理字符对,所以当在for循环中时,我正在执行current_index和current_index + 1操作,所以在不知道最后一个元素的情况下,我将得到一个超出绑定错误的字符串索引。

1 个答案:

答案 0 :(得分:6)

  

我正在处理chars对,所以当在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是否等于字符串的长度,以确保您确实位于字符串的最后位置。