Trying to remove negative numbers from a list. I kept running into an issue where two successive negative numbers did not get removed. My code is quite simple:
numbers = [-5, 1, -3, -1]
    def remove_neg(num_list):
        for item in num_list:
            if item < 0:
                num_list.remove(item)
    print(remove_neg(numbers))
    #[1, -1]
I found the answer online after trying 4 different versions of my code and pulling a few hairs out of my head. The answer I found assigned r = numbers[:] and then removed items from r instead of the initial list.
    def remove_neg(num_list):
        r = numbers [:]
        for item in num_list:
            if item < 0:
                r.remove(item)
        print(r)
I understand this concept to have two list variables point to separate data. What I don't understand, is why my initial code doesn't work. Shouldn't for i in numbers: iterate through every item in the list? Why would two successive numbers not be treated the same? I've scoured looking for why and can't seem to find an answer.
 
    