+ 1

Python List Comprehension

Code should output only consonants< I managed to omit only 'a', want to omit other vowels too (e,i,u etc) but doesn't work --> I tried like this ...if letter != 'a', 'u','e' Help me what I am doing wrong? word = input() print([letter for letter in word if letter != 'a'])

9th Jun 2021, 6:23 PM
Adilet Kambarov
Adilet Kambarov - avatar
2 Answers
+ 8
Adilet Kambarov , you are very close to get it. instead of using the current if clause inside the comprehension, you can use this one: print([ ......if letter not in 'aeiou ']) this results in a list of single letters. so all vowels and spaces will not be in the output. if punctuation also should be excluded, put them also to the string with the vowels. a collection of punctuation characters can be get after importing module string. using "string.punctuation" gives you all these characters. so finally it could look like: print([.....if letter not in 'aeiou ' + string.punctuation])
9th Jun 2021, 6:30 PM
Lothar
Lothar - avatar
+ 2
# with regular expression that's quite easy: import re regex = re.compile("[^b-df-hj-np-tv-z]",re.I) new_text = re.sub(regex, "", text) # and if you want to only remove vowels, just change regex: regex = re.compile("[aeiou]",re.I)
9th Jun 2021, 7:10 PM
visph
visph - avatar