My question can looks a bit weird and easy, but I can't find a satisfying answer. I want to iterate on a list, and remove elements from it. The problem happens when there is one element left in the list after a deletion: the loop will not iterate on the last element, just as if the list was empty.
I am using a for .. in .. like in the following example:
def test_remove(self):
"""Test to remove all values from a list."""
test = [4, 5]
[test.remove(i) for i in test]
print test
I am getting the following output:
[5]
Does it mean that iterating like I am doing on a list doesn't dynamically resize the list when an element is deleted (same thing is happening using for i in range()) ? Or it is just because i am simply reaching i = len, and so I can't go further ?
I could always cheat and check when the len is equal to 1 but I would like to understand if there is a more beautiful way to do this.
Thank you very much.