IndexError:字符串索引超出范围..为什么?

时间:2013-03-13 10:36:52

标签: python for-loop

我想找到字符串的最后一个空格,然后在那里打破它。 line_size是该行必须的大小,因此它会有所不同。

if line[line_size] != ' ':
        for x in reversed(range(line_size)):
            print line[x]
            if line [x] == ' ':
            break_line = line[x]

3 个答案:

答案 0 :(得分:6)

您应该将rfind用于相同的

In [71]: l = "hi there what do you want"

In [72]: l.rfind(' ')
Out[72]: 20

rfind返回找到substring sub的字符串中的最高索引

您的案例中的问题似乎与line_size有关reversed(range(len(l)))

In [76]: for x in reversed(range(len(l))):
   ....:     if l[x] == ' ':
   ....:         print x
   ....:         break
   ....:
20

答案 1 :(得分:0)

Python中的索引从零开始,因此如果line_size = len(line)line中的字符数),则line的最后一个字符为line[line_size-1]

答案 2 :(得分:0)

假设line_size = len(line),这将永远失败

if line[line_size] != ' ':

因为第一项是line[0],最后一项是line[len(line)-1]