Mikhail G.
Спасибо. Но почему только с копией работает это?:
for i in m:
if i < 0:
m.remove(i)
потому что нельзя менять список по которому итерируешься.
происходит примерно такое:
for i in range(len(10)):
elem=m[i]
if ....:
m.remove(elem)
после удаления первого по счёту элемента нумерация сдигается, а цикл пытаешься пробежать по всем элементам первоначального списка и в результате на каком-то этапе происходит indexerror, попытка обратиться к 9-му элемента списка, который имеет всего 5 элементов.