Код не удаляет элементы из списка

List = [1, 'tt', 'tt', 3, 5, 3, 'tt', 'tt', 'tt']
for element in List:
    if element == 'tt':
        List.remove(element)
print(List) # [1, 3, 5, 3, 'tt', 'tt']

Почему одни элементы списка, равные 'tt' удаляются, а другие НЕТ


Ответы (2 шт):

Автор решения: Сергей

Если у вас "nan" в списке, то причина в том, что изменяли итерируемый список, идя по нему вперед. Рекомендую так тогда - идти с конца:

NumbersList = ['nan', 'nan', '81207719928', '81207760124', '8127789514', '8127715401', '8127712287']

for i in range (len(NumbersList)-1, -1, -1):
    if NumbersList[i] == 'nan':
        NumbersList.pop(i)

print (NumbersList) # ['81207719928', '81207760124', '8127789514', '8127715401', '8127712287']

или если идти вперед, то нужен второй список:

NumbersList = ['nan', 'nan', '81207719928', '81207760124', '8127789514', '8127715401', '8127712287']
NewList =[]

for TelNumber in NumbersList:
    if TelNumber != 'nan':
        NewList.append(TelNumber)

print (NewList) # ['81207719928', '81207760124', '8127789514', '8127715401', '8127712287']
→ Ссылка
Автор решения: Игорь Артюшин

Вот правильное решение

List = [1, 'tt', 'tt', 3, 5, 3, 'tt', 'tt', 'tt']
OutList = []
for element in List:
    if element != 'tt':
        OutList.append(element)
print(OutList) # [1, 3, 5, 3]
→ Ссылка