@lconant Problem exists in this part of code..
for c in new:
if c in "aeiouAEIOU":
When you start looping at
new list and then check if it (vowel) is present in vowel string.
Suppose you find one ,then you just remove it.
In next loop,Your list is not same as last one as you removed one element of the list.(It's length have changed as you removed one item)
Thus it skips few items of list and you get "o" left (When CC checks at
anti_vowel("Hey look Words!")).
Instead deleting from new..create separate copy of
new list..then delete items from it and return (by using join() method on it to convert back it to string)
One more thing,the list you create should not have same reference as your
use this syntax to create this list..
new_list = new[:]
new_list as loops main list instead of
do reply if it solved the problem or not!