索引器错误:字符串索引超出范围。。为什么?

2024-04-24 00:15:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找到字符串的最后一个空格,然后他们在那里打断它。 行大小是行必须的大小,因此它是不同的。你知道吗

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

Tags: 字符串inforsizeiflinerange空格
3条回答

Python中的索引是基于零的,因此如果line_size = len(line)(在line中的字符数),那么line的最后一个字符就是line[line_size-1]。你知道吗

你应该用rfind来表达同样的意思

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

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

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

你的问题似乎出在line_size你可以选择reversed(range(len(l)))

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

假设line_size = len(line),这将总是失败的

if line[line_size] != ' ':

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

相关问题 更多 >