Как в конце вместо запятой сделать точку?
s = 'неделя, человек, путь, женщина, книга, путь, глаз, сторона, дом, путь.'
s = s.replace('а', '')
s = s.replace('у', '')
s = s.replace('о', '')
s = s.replace('ы', '')
s = s.replace('и', '')
s = s.replace('э', '')
s = s.replace('я', '')
s = s.replace('ю', '')
s = s.replace('ё', '')
s = s.replace('е', '')
s = s[:-1]
x = s.split()[-1]
s = s.replace(x, '').replace(', ,', ',')
print(s)
Мне выводит:
ндл, члвк, жнщн, кнг, глз, стрн, дм,
Я хочу чтобы вывело:
ндл, члвк, жнщн, кнг, глз, стрн, дм.
Укажите пожалуйста на мою ошибку и что я делаю не так?
Ответы (4 шт):
Ну раз вы не извлекаете никакого опыта из предыдущих ответов...
Вот конкретно как делается ваш текущий
s = 'неделя, человек, путь, женщина, книга, путь, глаз, сторона, дом, путь.'
words = ''.join(letter for letter in s if letter not in 'аеёиоуыэюя')[:-1].split(", ")
s = ', '.join(word for word in words if word != words[-1]) + '.'
print(s)
из строки получить список букв без гласных
arr = [letter for letter in s if letter not in 'аеёиоуыэюя']
т.е. пройти по всем буквам строки и в список добавить только те, которые не входят в список гласных
собрать список в строку через пустой разделитель
string = ''.join(arr)отрезать у строки последний символ (точку)
string = string[:-1]
т.е. сделать срез строки от 0 символа до предпоследнего (-1 от конца)
разбить строку на список слов через разделитель
,words = string.split(', ')удалить из списка все элементы равные последнему элементу (последнему слову)
последний элемент - words[-1]
удаление элементов через сбор нового списка в который такие элементы не входят
new_words = [word for word in words if word != words[-1]]
или через фильтрацию с помощью функции filter
new_words = filter(lambda word: word != words[-1], words)
собрать список в строку через разделитель
,string = ', '.join(new_words)добавить точку
string = string + '.'
P.S.
касательно шага 5) - через фильтрацию:
s = ', '.join(filter(lambda word: word != words[-1], words)) + '.'
from collections import Counter
def main():
# Указываем ПОСЛЕДОВАТЕЛЬНОСТЬ символов одной стройкой...
replace_chars = 'ауоыиэяюёе'
target_string = 'неделя, человек, путь, женщина, книга, путь, глаз, сторона, дом, путь.'
# Вычисляем количество каждого символа...
counter = Counter(target_string)
for replace_char in replace_chars:
# Извлекаем количество символов `replace_char` в строке...
count = counter.get(replace_char)
if count is not None:
# Если символ есть в строке, то убираем каждый...
for i in range(count):
target_string = target_string.replace(replace_char, '')
print(target_string)
if __name__ == '__main__':
main()
def main():
s = 'неделя, человек, путь, женщина, книга, путь, глаз, сторона, дом, путь.'
s = s.replace('а', '')
s = s.replace('у', '')
s = s.replace('о', '')
s = s.replace('ы', '')
s = s.replace('и', '')
s = s.replace('э', '')
s = s.replace('я', '')
s = s.replace('ю', '')
s = s.replace('ё', '')
s = s.replace('е', '')
s.rstrip(',')
s = s[:-1]
x = s.split()[-1]
#s = s.replace(x, '').replace(', ,', ',')
print(s.rstrip(','),'.',sep='')# Такой формат подойдет?
main()
s = 'неделя, человек, путь, женщина, книга, путь, глаз, сторона, дом, путь.'
s = s.replace('а', '')
s = s.replace('у', '')
s = s.replace('о', '')
s = s.replace('ы', '')
s = s.replace('и', '')
s = s.replace('э', '')
s = s.replace('я', '')
s = s.replace('ю', '')
s = s.replace('ё', '')
s = s.replace('е', '')
s = s[:-1]
x = s.split()[-1]
s = s.replace(x, '').replace(', ,', ',')
s = s[:-2]
print(s + '.')