Форум сайта python.su
0
необходимо преобразовать входную строку: в выходной строке должны быть все те же символы в том же порядке, но удалить все латинские строчные согласные буквы.
строка произвольная
Отредактировано Alex_3001 (Ноя. 7, 2016 22:05:34)
Офлайн
12
from string import ascii_lowercase ''.join(c for c in 'my new absolutely c00l string' if c not in set(list(ascii_lowercase)) - set(list('aeiou')))
Отредактировано izekia (Ноя. 7, 2016 22:36:49)
Офлайн
0
izekiaСпасибо)
Офлайн
857
>>> s = 'abc 123 def 456 ghi' >>> >>> pred = lambda i: i not in set('bcdfghjklmnpqrstvwxz') >>> out = ''.join(filter(pred, s)) >>> out 'a 123 e 456 i' >>>
Отредактировано py.user.next (Ноя. 8, 2016 00:32:31)
Офлайн
12
py.user.next
а ‘y’?
Офлайн
221
izekia
НУ как это не гласная ?? Ну блин что Вы такое говорите ?? Английский алфавит
Офлайн
12
JOHN_16
а вот так: English_alphabet
а то англоговорящие и не в курсе)
вот здесь еще немного рассуждений по поводу
согласен на такой вариант:
from random import randint from string import ascii_lowercase FULL_CONSONANTS = set(list(ascii_lowercase)) - set(list('aeiou')) SEMIVOWELS = set(list('yw')) def remove_consonants(string): '''The most perfect consonants removal ever''' return ''.join(c for c in string if c not in FULL_CONSONANTS or c in SEMIVOWELS and randint(0, 1)) >>> remove_consonants('my new absolutely c00l string') ' e aouey 00 i' >>> remove_consonants('abc 123 def 456 ghi') 'a 123 e 456 i'
Отредактировано izekia (Ноя. 8, 2016 13:27:21)
Офлайн
221
izekia
Ок, пусть кто то там что то там говорит и делает околонаучные изыскания. Я не намерен ввязываться в этот холиварный вопрос. Мир сложен и одна и та же буква дает кучу звуков - ок? не спорим. Но в “нашем” бинарном упрощенном мире мы посчитали букву Y гласной. Если миллион людей будет против - для них найдутся миллион оппонентов, а нам дело надо делать.
Офлайн
12
JOHN_16
согласен, решение есть, а сконфигурировать его уже можно на свой вкус)
Офлайн
857
Задание - “удалить строчные СОГЛАСНЫЕ буквы”. Как бы там ни было, можно ли сказать, что “y” согласная? Нет, нельзя, потому что она либо гласная, либо полугласная.
А когда она гласная и когда полугласная? Это зависит от слова, в котором она находится. Но что сказано про слова в задании? Ничего. Значит, никакого определения слов в строке быть не должно. Поэтому удаление этой буквы (без учёта слова, в котором она) может привести к удалению гласной. А нам это не нужно. Поэтому удаляются определённо согласные буквы.
Офлайн