Don't understand why 'o' is not deleted
plist = ['D', 'o', 'n', "'", 't', ' ', 'p', 'a', 'n', 'i', 'c', '!']
for i in plist:
if i in "Don":
plist.remove(i)
print(plist) -> ['o', "'", 't', ' ', 'p', 'a', 'i', 'c', '!']
Don't understand why 'o' is not deleted
plist = ['D', 'o', 'n', "'", 't', ' ', 'p', 'a', 'n', 'i', 'c', '!']
for i in plist:
if i in "Don":
plist.remove(i)
print(plist) -> ['o', "'", 't', ' ', 'p', 'a', 'i', 'c', '!']
Whe you remove D from the list, o wil move to pos 0.
Just loop over a copy of the list
plist = ['D', 'o', 'n', "'", 't', ' ', 'p', 'a', 'n', 'i', 'c', '!']
for i in plist[:]:
if i in "Don":
plist.remove(i)
print(plist) # Output: ["'", 't', ' ', 'p', 'a', 'i', 'c', '!']