Я пытаюсь написать функцию, которая удаляла бы строковые элементы из списка и возвращала новый список.
Мое решение:
def foo(lst):
for i in lst:
if type(i) == str:
lst.remove(i)
print(lst)
return(lst)
В то время как правильным является:
def foo(lst):
return [i for i in lst if not isinstance(i, str)]
Разве логики c в принципе не совпадают? Где моя ошибка? В некоторых списках мой код работает, для некоторых нет