Удаление последнего определённого элемента
как можно удалить последний определённый элемент строки? Например, есть строка "Ты не знаешь, что такое настоящая дружба, Генри" и удалить только последнюю букву "р" а остальные оставить.
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
Алгоритм:
- ищем букву с конца строки
- создаём новую строку на основании двух срезов текущей строки - до и после вырезаемой буквы:
вариант 1:
text = "Ты не знаешь, что такое настоящая дружба, Генри"
pos = text.rfind('р')
res = text[:pos] + text[pos + 1:]
print(res)
Для любителей легкой эротики:
вариант 2:
arr = list(text)
del arr[len(arr) - 1 - arr[::-1].index('р')]
res = ''.join(arr)
с использованием функций строки:
вариант 3:
arr = list(text)
del arr[text.rfind('р')]
res = ''.join(arr)
решение в одну строчку
вариант 4:
res = ''.join([text[i] for i in range(len(text)) if i != text.rfind('р')])
тот же вариант 4, только сбоку
вариант 5:
res = ''.join(i[1] for i in enumerate(text) if i[0] != text.rfind('р'))
Самый извратный:
вариант 6
res = ''.join(map(lambda x: x[1], filter(lambda i: i[0] != text.rfind('р'), enumerate(text))))