我刚开始使用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
这是什么意思,我该如何纠正?
答案 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来捕获单词并得到错误。我认为问题在制定中存在问题。