Usuwanie pojedynczych liter z wyrazu

0

Czy jest jakaś domyślna funkcja pozwalająca usuwać wybrane elementy z łańcucha znaków, np. mamy zdanie "Ala ma kota" i z tego zdania chciałbym usunąć wszystkie samogłoski. Próbowałem zastosować funkcję remove(), ale bezskutecznie.

1
remove_vowels = str.maketrans('', '', 'aeiou')
"qwertyuiopasdfghjklzxcvbnm".translate(remove_vowels)
1

albo

>>> import re
>>> my_string = 'Ala ma kota'
>>> my_string = re.sub(r'[AEIOUaeiou]', '', my_string)
>>> my_string
'l m kt'
>>> 

1

Mniej optymalnie, ale prościej do zrozumienia:

a="Ala ma kota"
rep = "aeiou"
rep += rep.upper()
for i in rep:
    if i in a:
        a=a.replace(i, '')
#"l m kt"

Powyższe metody działają na tej samej zasadzie.

2

Takie najporstrze rozwiązanie to chyba

''.join(c for c in your_string if not c in 'aeiouAEIOU')

Dodatkowa uwaga - technicznie rzecz biorąc, nie możesz usunąć nic, gdyż stringi są niezmienne (immutable), możesz co najwyżej zrobić nowego stringa, który nie będzie zawierał niechcianych znaków.

1 użytkowników online, w tym zalogowanych: 0, gości: 1