这是我用来区分函数的更简单的代码版本,但它演示了这个问题。我将' 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
答案 0 :(得分:0)
您正在改变b
的长度;你删除第一个字符。但是,您的range()
仍然会继续,最后只有i = 3
应用于b
只有0
,1
和2
的索引。
您可以改为使用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
测试总是为真,因为您没有调用。