.isdigit索引超出范围python

时间:2014-09-17 09:59:41

标签: python python-2.7 indexing

这是我用来区分函数的更简单的代码版本,但它演示了这个问题。我将' listindex超出了范围'错误。它只在我包含.isdigit部分时才会出现。任何帮助深表感谢!

l='1bcd'
b=list(l)
for i in range (0,len(b)): 

    if b[i].isdigit:
        if i==0:
            if b[i+1]=='b':

                del b[i]
print b

1 个答案:

答案 0 :(得分:0)

您正在改变b的长度;你删除第一个字符。但是,您的range()仍然会继续,最后只有i = 3应用于b只有012的索引。

您可以改为使用while循环:

i = 0
while i < len(b) - 1:
    if b[i].isdigit() and b[i + 1] == 'b':
        del b[i]
    else:
        b += 1

我删除了i == 0测试,因为它不再适用。

请注意,isdigit测试总是为真,因为您没有调用