Удаление последовательных символов/символов, найденных после слова для нескольких токенов

#python #string #replace

Вопрос:

Странный значок повторяется после разных слов/символов. Пример показан ниже:

символ

До сих пор я удалял его с помощью команды заменить, однако это может стать утомительным, если это делается индивидуально для каждого слова.

Символ, показанный на изображении, представлен в виде x9d. Текущий код python показан ниже:

 import re
 text = ['unstable',
 'peoplex9d.',
 'pattern',
 'real',
 'thought',
 'fearful',
 'represent',
 'contrariansx9d',
 'greedy',
 'interesting',
 'behaviour',
 'opposite']
  text = [k.replace('basketx9d.', 'basket') for k in text]
  text = [k.replace('peoplex9d.', 'people') for k in text]
  text = [k.replace('portfolios.x9d', 'portfolios') for k in text]
 

Я пытался обнаружить закономерности с помощью re.sub, но мне это не удалось.

 text = [re.sub('x9d', '', str(k)) for k in text] 
 

Этот код полностью удалит слово.

Комментарии:

1. Так о чем же [k.replace('x9d.', '') for k in text] ? Или ты хочешь оставить его себе после contrarians ? У вас есть список слов, после которых нужно удалить специальный символ, или какой-то список фильтров?

2. это работает текст =[«нестабильный», «люди», «шаблон», «реальный», «мысль», «страшный», «репрезентирует», «противоположности», «жадный», «интересный», «поведение», «противоположный»] текст = [k.заменить(«x9d.», «) для k в тексте]

Ответ №1:

Здесь вам нужно удалить последовательность из двух символов x9d и . .

Вы можете использовать простое str.replace понимание в списке:

 text = [k.replace('x9d.', '') for k in text]
 

Смотрите демонстрационную версию Python:

 import re
text = ['unstable','peoplex9d.','pattern','real','thought','fearful','represent','contrariansx9d','greedy','interesting','behaviour','opposite']
text = [k.replace('x9d.', '') for k in text]
print(text)
# => ['unstable', 'people', 'pattern', 'real', 'thought', 'fearful', 'represent', 'contrariansx9d', 'greedy', 'interesting', 'behaviour', 'opposite']