Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 7, 2016 22:05:04

Alex_3001
Зарегистрирован: 2016-11-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование строк

необходимо преобразовать входную строку: в выходной строке должны быть все те же символы в том же порядке, но удалить все латинские строчные согласные буквы.
строка произвольная

Отредактировано Alex_3001 (Ноя. 7, 2016 22:05:34)

Офлайн

#2 Ноя. 7, 2016 22:35:47

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Форматирование строк

 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’ - это не гласная



Отредактировано izekia (Ноя. 7, 2016 22:36:49)

Офлайн

#3 Ноя. 7, 2016 23:03:50

Alex_3001
Зарегистрирован: 2016-11-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование строк

izekia
Спасибо)

Офлайн

#4 Ноя. 8, 2016 00:31:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Форматирование строк

  
>>> 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)

Офлайн

#5 Ноя. 8, 2016 02:32:24

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Форматирование строк

py.user.next
а ‘y’?



Офлайн

#6 Ноя. 8, 2016 12:25:47

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Форматирование строк

izekia
НУ как это не гласная ?? Ну блин что Вы такое говорите ?? Английский алфавит



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Ноя. 8, 2016 13:25:58

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Форматирование строк

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)

Офлайн

#8 Ноя. 8, 2016 17:14:13

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Форматирование строк

izekia
Ок, пусть кто то там что то там говорит и делает околонаучные изыскания. Я не намерен ввязываться в этот холиварный вопрос. Мир сложен и одна и та же буква дает кучу звуков - ок? не спорим. Но в “нашем” бинарном упрощенном мире мы посчитали букву Y гласной. Если миллион людей будет против - для них найдутся миллион оппонентов, а нам дело надо делать.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Ноя. 8, 2016 19:34:42

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Форматирование строк

JOHN_16
согласен, решение есть, а сконфигурировать его уже можно на свой вкус)



Офлайн

#10 Ноя. 9, 2016 01:56:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Форматирование строк

Задание - “удалить строчные СОГЛАСНЫЕ буквы”. Как бы там ни было, можно ли сказать, что “y” согласная? Нет, нельзя, потому что она либо гласная, либо полугласная.

А когда она гласная и когда полугласная? Это зависит от слова, в котором она находится. Но что сказано про слова в задании? Ничего. Значит, никакого определения слов в строке быть не должно. Поэтому удаление этой буквы (без учёта слова, в котором она) может привести к удалению гласной. А нам это не нужно. Поэтому удаляются определённо согласные буквы.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version