У меня есть список таких, как это:Получение индекса из диапазона Погрешность при попытке удалить элемент списка
l = ['(7 - 3)', '7 - 6', '(a + 13)']
Я хочу, чтобы удалить любое выражение, которое не содержит букву "a"
поэтому единственное выражение, которое будет Осталось ['(a+13)']
. До сих пор я попытался это:
for i in range(len(l)):
if "a" not in l[i]:
l.pop(i)
else:
print(l[i])
Однако я получаю индекс списка из ошибок диапазона, и не знаю, как это исправить.
Может ли кто-нибудь помочь в решении этого вопроса?
Когда появляется элемент из список вы уменьшаете размер списка, в то время как цикл for сохраняет старую длину. Я бы предложил использовать второй список для pop from. –
Я бы предложил новый подход и создал новый список.добавление() элементы, которые содержат __do__ 'а': новые = [] # вы использовали 'L' для '' CurrentList для г в CurrentList: , если "а" в I: new.append (I) –