使用for循环迭代时“列出索引超出范围”错误

时间:2017-09-16 16:21:56

标签: python list

我是初学者。我正在写一个删除'!'的python程序和'。'从列表中。用户输入任何字符串。 Python将其转换为列表并删除!和。并再次打印更改列表。这是我的代码:

x = input("Enter a string: ")

y = list(x)

for i in range(len(y) - 1):

    if y[i] == '!' or y[i] == '.':
        y.pop(i)
print("Altered list is: ",y)

即使我执行range(len(y)-1)range(len(y)),也会显示错误:
List index out of range

1 个答案:

答案 0 :(得分:0)

您正在迭代正在修改的列表......它无法很好地结束。

请尝试使用此方法:

y = [elt for elt in y if elt != "!" or elt != "."]

它将重建您的列表,省略不需要的元素。