字符串索引超出范围错误python

时间:2013-07-14 06:34:19

标签: python python-2.7

我刚开始使用python,我必须定义一个函数来检查列表中有多少个字符串有多于2个字符或者它们的第一个和最后一个字符是否相同:

def match_ends(words):
  count=0
  for w in words:
    if len(w)>=2:
      count+=1
    elif w[0]==w[-1]:
      count+=1
  return count

我收到一条错误消息:

elif w[0]==w[-1]:
IndexError: string index out of range

这是什么意思,我该如何纠正?

4 个答案:

答案 0 :(得分:3)

通过编写elif w[0]==w[-1]:,您将从结尾编制索引 - 换句话说,就是最后一个元素。也许它是一个空字符串,所以没有最后一个元素可供引用?尝试打印字符串,这样你就可以看到发生了什么。

答案 1 :(得分:3)

您应该检查w是否为空字符串。

>>> w = ''
>>> w[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

答案 2 :(得分:1)

您可能想要添加:

elif len(w)>0 and w[0]==w[-1]:

答案 3 :(得分:0)

在你的elif案例中,你用len&lt; 2来捕获单词并得到错误。我认为问题在制定中存在问题。