I have a list in the given format:
[['John', 'Smith'], ['Linus', 'Torvalds'], ['Bart', 'Simpson']]
There are some elements like this in the list [‘Linus Torvalds’, ”] and I want to remove those. So why doesn’t the following code remove them?
for i in people:
if(i[0] == '' or i[1] == ''):
print people.pop(people.index(i))
You are changing the list while iterating over it and this is the source of your problems. An approach that works is
this way a new temporary list containing only the elements you want is built and then assigned to the original list object when the operation is complete.