for i in range(len(text_list)):
for j in range(len(text_list[i])):
if text_list[i][j] in ban:
text_list[i]=text_list[i][:j]
第三行出现错误。 我不知道该怎么办。 我认为不应该有任何错误..
答案 0 :(得分:1)
此行会更改text_list[i]
:
text_list[i]=text_list[i][:j]
因此for j ...
的下一次迭代无效。修改text_list
后,您应该break
转到下一个更高的for i ...
循环。
答案 1 :(得分:1)
您正在迭代期间修改列表。如果你的if条件成功,你将削减该行的其余部分。所以在下一次迭代中,你会遇到一个超出界限的错误。这与写作基本相同:
arr = [1, 2, 3]
for i in range(len(arr)):
print(arr[i])
arr = arr[:i] # could be simply arr = []
答案 2 :(得分:0)
在迭代期间永远不会改变您的列表,因为您的索引将会发生变化。而是创建一个新列表,也许看看列表理解:http://python-3-patterns-idioms-test.readthedocs.io/en/latest/Comprehensions.html