Не уверен, действительно ли это "Pythoni c", но проблему можно решить с помощью регулярных выражений.
import re
def starkill(s):
s = re.sub(".{0,1}\\*{1,}.{0,1}", "", s)
return s
Для тех, кто не знаком с регулярным выражением, я сломаю эту длинную строку вниз :
Префикс
".{0,1}"
Указывает, что мы хотим, чтобы замещаемый раздел начинался с 0 или 1 любого символа. Если перед звездой есть персонаж, мы хотим заменить его; в противном случае мы все еще хотим, чтобы выражение попадало, если звезда находится в самом начале входной строки.
Звезда
"\\*{1,}"
Это указывает, что середина выражение должно содержать символ звездочки, но также может содержать более одного. Например, «*****» все равно будет попадать, даже если есть четыре звезды. Нам нужна обратная косая черта sh перед звездочкой, потому что регулярное выражение имеет звездочку в качестве зарезервированного символа, и нам нужна вторая обратная косая черта sh перед , которая , поскольку строки Python резервируют символ обратной косой черты sh.
Суффикс
.{0,1}
То же, что и префикс. Выражение может заканчиваться одним или нулем любого символа.
Надеюсь, это поможет!