ID:0
Часто в программировании стыкаешься с тем, что нужно удалить из текста (строки) какой-то символ. Это решается при помощи одной функции – строка.replace(символ, “”) – где мы просто меняем строку на ничего:
string.replace("!","")
Если у нас строка была “Привет!”, то теперь она станет “Привет”.
Пока все норм, но что если нам нужно удалить несколько символов из строки. Тогда мы попадаем в адский ад повторений.
Предположим у нас есть строка:
string = "xvxcvhnxcnvkxjcnbvkxbcvkx!!)."
И нам нужно удалить из нее символы !, ) и точку.
Для этого нам нужно сделать string.replace("!","").replace(".","").replace(",","").replace(“)”,””).
Дичь, правда? Но выход есть.
Я написал функцию, которая удаляет из строки все символы за раз:
stremove(string, "!):.")
Сначала указываем в скобках откуда будем вырезать символы и через запятую в кавычках пишем символы, которые нужно удалить. Удобно, не так ли?
если уже оценивать именно эту функцию, нужно ее доработать, ибо очень неоптимизировпна, на миллионных строках будет долго работать
1)нет смысла держать в списке один элемент, это можно сделать короче переприсвоеним string = string.replace()
2) replace долгая опеоация, ибо ей придется пройти по всем элементам списка, то есть если таких символов будет много, как и будет большая длина строки время будет расти линейно, то есть ей придется сделать кол символов * длину строки проходов по строке, но на самом деле это можно сделать всего за 1 проход одним циклом и без реплайс, попробуй исправить
3) string лучше не использовать как переменную, ибо есть такой встроенный модуль, если ты потом жахочешь его заюзать в функции, он просто затрется твоей переменной