Строки

Удаление нежелательных символов из строки в Python

Программисты часто сталкиваются с задачей удаления какого-нибудь символа из строки. Но иногда бывает нужно удалить не один символ, а целый список нежелательных символов. Например, специальных символов — для восстановления валидных паролей. Есть и другие ситуации, когда это может понадобиться. Давайте рассмотрим, каким образом можно решить такую задачу.

Метод 1: использование replace()

Можно использовать replace() внутри цикла для выявления bad_char («плохого» символа) и замены его на пустую строку (т. е., по сути, удаления). Это самый базовый и неэффективный с точки зрения производительности подход.

# Python3 code to demonstrate 
# removal of bad_chars 
# using replace() 

# initializing bad_chars_list 
bad_chars = [';', ':', '!', "*", " "] 

# initializing test string 
test_string = "Ge;ek * s:fo ! r;Ge * e*k:s !"

# printing original string 
print("Original String : " + test_string) 

# using replace() to 
# remove bad_chars 
for i in bad_chars : 
    test_string = test_string.replace(i, '') 

# printing resultant string 
print("Resultant list is : " + test_string) 

Результат:

Original String : Ge;ek<em>s:fo!r;Ge</em>e*k:s!
Resultant list is : GeeksforGeeks

Метод 2: использование join() и генератора

При помощи join() мы переделываем строку. В функции генератора мы прописываем логику игнорирования определенных символов (входящих в bad_chars), в результате новая строка формируется без них.

# Python3 code to demonstrate 
# removal of bad_chars 
# using join() + generator 

# initializing bad_chars_list 
bad_chars = [';', ':', '!', "*", " "] 

# initializing test string 
test_string = "Ge;ek * s:fo ! r;Ge * e*k:s !"

# printing original string 
print("Original String : " + test_string) 

# using join() + generator to 
# remove bad_chars 
test_string = ''.join(i for i in test_string if not i in bad_chars) 

# printing resultant string 
print("Resultant list is : " + test_string) 

Результат:

Original String : Ge;ek<em>s:fo!r;Ge</em>e*k:s!
Resultant list is : GeeksforGeeks

Метод 3: использование filter()

Еще один вариант решения этой задачи. Функция filter при использовании lambda-функции может удалить все bad_chars и вернуть строку в желанном для нас виде.

# Python3 code to demonstrate 
# removal of bad_chars 
# using filter() 

# initializing bad_chars_list 
bad_chars = [';', ':', '!', "*", " "] 

# initializing test string 
test_string = "Ge;ek * s:fo ! r;Ge * e*k:s !"

# printing original string 
print("Original String : " + test_string) 

# using filter() to 
# remove bad_chars 
test_string = filter(lambda i: i not in bad_chars, test_string) 

test_string = "".join(test_string)

# printing resultant string 
print("Resultant list is : " + test_string) 

Результат:

Original String : Ge;ek<em>s:fo!r;Ge</em>e*k:s!
Resultant list is : GeeksforGeeks

Марина

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago