Проблема в том, что вы удаляете строку из массива строк, а затем пытаетесь получить к ней доступ снова.
Например, если у вас есть список веб-сайтов
website_list = ["google","facebook"]
и ваш x(список строк):
["First sentence","Second sentence containing google","Last sentence"]
Глядя на этот цикл
for site in websites_list:
Вы удалили бы второе предложение из x, потому что вы соответствовали Google.Однако вы также попытаетесь проверить, содержит ли второе предложение «facebook».Поскольку вы уже удалили второе предложение из своего списка x, вы получите сообщение об ошибке.
Я бы рекомендовал читать файл построчно вместо того, чтобы перехватывать вселинии сразу.Если это строка без имени веб-сайта, добавьте ее в допустимую коллекцию списков.
Еще один питонический способ решения этой проблемы - использование списка со списком, если ваш ввод не большой
with open(hosts_temp, 'r+') as file1:
content = file1.read()
x = content.splitlines()
x = [line for line in x if all(w not in line for w in websites_list)]
Рекомендуется быть очень осторожным при переборе коллекции и добавлении / удалении элементов по пути.