Удаление последнего определённого элемента

как можно удалить последний определённый элемент строки? Например, есть строка "Ты не знаешь, что такое настоящая дружба, Генри" и удалить только последнюю букву "р" а остальные оставить.


Ответы (1 шт):

Автор решения: Zhihar

Алгоритм:

  1. ищем букву с конца строки
  2. создаём новую строку на основании двух срезов текущей строки - до и после вырезаемой буквы:

вариант 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))))
→ Ссылка