Найти - Пользователи
Полная версия: Форматирование строк
Начало » Python для новичков » Форматирование строк
1 2
Alex_3001
необходимо преобразовать входную строку: в выходной строке должны быть все те же символы в том же порядке, но удалить все латинские строчные согласные буквы.
строка произвольная
izekia
 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')))

насколько я помню ‘y’ - это не гласная
Alex_3001
izekia
Спасибо)
py.user.next
  
>>> 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'
>>>
izekia
py.user.next
а ‘y’?
JOHN_16
izekia
НУ как это не гласная ?? Ну блин что Вы такое говорите ?? Английский алфавит
izekia
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'

мне кажется так справедливо)
JOHN_16
izekia
Ок, пусть кто то там что то там говорит и делает околонаучные изыскания. Я не намерен ввязываться в этот холиварный вопрос. Мир сложен и одна и та же буква дает кучу звуков - ок? не спорим. Но в “нашем” бинарном упрощенном мире мы посчитали букву Y гласной. Если миллион людей будет против - для них найдутся миллион оппонентов, а нам дело надо делать.
izekia
JOHN_16
согласен, решение есть, а сконфигурировать его уже можно на свой вкус)
py.user.next
Задание - “удалить строчные СОГЛАСНЫЕ буквы”. Как бы там ни было, можно ли сказать, что “y” согласная? Нет, нельзя, потому что она либо гласная, либо полугласная.

А когда она гласная и когда полугласная? Это зависит от слова, в котором она находится. Но что сказано про слова в задании? Ничего. Значит, никакого определения слов в строке быть не должно. Поэтому удаление этой буквы (без учёта слова, в котором она) может привести к удалению гласной. А нам это не нужно. Поэтому удаляются определённо согласные буквы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB