Всем привет. Я тут столкнулся с проблемой в С1W2, что мой код вычищает не все пустые слова, а только какое-то количество. Только при повторении процедуры очистки еще 4 раза текст наконец-то становится без ‘’. Кто-нибудь сталкивался с такой проблемой? Если да, то можете объяснить почему так?
import re
file=open('sentences.txt')
data=[]
for line in file:
data.append(line.strip())
for i in range(len(data)):
print(i)
data[i]=data[i].lower()
data[i]=re.split('[^a-z]',data[i])
print(data[i])
for element in data[i]:
if element=='':
data[i].remove(element)
elif element=='s':
data[i].remove(element)
elif element=='t':
data[i].remove(element)
elif element=='x':
data[i].remove(element)
print(data[i])
Привет. Я первый день в этом чате. И не совсем понимаю, откуда вообще в data[i] пустые строки. Но с такой ошибкой я сталкивался, а именно в цикле for element in data[i]: ты удаляешь элементы, и .... сейчас попробую объяснить... допустим твой цикл for сейчас на втором элементе, ты его удаляешь, третий элемент списка становится вторым, но твой цикл на следующей итерации идет на третий элемент (который до этого был четвертым), а второй (который был третьим) - пропускает. Плохая идея - в цикле менять список, по которому ты идешь (добавлять или удалять элементы). Самое простое исправление - добавлять в новый список элементы, которые тебе нужны (которые ты не будешь удалять).