pythonist 1
Программисты часто сталкиваются с задачей удаления какого-нибудь символа из строки. Но иногда бывает нужно удалить не один символ, а целый список нежелательных символов. Например, специальных символов — для восстановления валидных паролей. Есть и другие ситуации, когда это может понадобиться. Давайте рассмотрим, каким образом можно решить такую задачу.
Можно использовать 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
При помощи 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
Еще один вариант решения этой задачи. Функция 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
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…