Как удалить символ из строки по индексу
1. Будет ошибка во второй строчке. 2. Не следует использовать list в качестве имени переменной или функции.
10 сен 2018 в 14:29
1. Ошибки не наблюдаю. 2. Такое имя использую просто для наглядности только в этом примере
10 сен 2018 в 14:33
Ошибка будет уже в первой строчке – ValueError empty separtor
10 сен 2018 в 14:34
Я сомневаюсь, что вы запускали этот код. Ошибка ValueError: empty separator . И в 2.х и в 3.х. Да и последняя строчка выведет совсем не результат предпоследней. 2. Не надо использовать такие имена даже просто для наглядности.
PYTHON: Как удалить ряд символов из строки?
Есть список символов, которые нужно исключить из строки. Подскажите, как реализовать это максимально красиво и с минимум затрат по ресурсам?
- Вопрос задан более трёх лет назад
- 64214 просмотров
Комментировать
Решения вопроса 2

проходил мимо
Я бы сделал регулярным выражением. Например строка mystr выглядит вот так asdw#df%mm!@* и надо удалить символы #%!@*, тогда
mystr = re.sub(r»[#%!@*]», «», mystr)
Ответ написан более трёх лет назад
Комментировать
Нравится 10 Комментировать

Andrey Dugin @adugin Куратор тега Python
Этот вопрос здесь уже не раз задавался:
Как удалить запрещенные символы из строки?
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 2
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Если символов немного, на мой взгляд наиболее читабельный вариант:
text.replace('#','').replace('@','').replace('!','')
Если много, то быстрее всего будет сделать так:
symbols = ['!','@','#','$','%'. ] text = "Some@string" for symbol in symbols: if symbol in text: text.replace(symbol,'')
Ответ написан более трёх лет назад
Нравится 2 2 комментария

Дополнительная проверка на существование символа в тексте не лишняя? Не получается ли что в этом случае алгоритм с каждой итерацией цикла проходит через все символы в text дважды? Один раз для проверки «symbol in text» и второй раз для самой замены «replace».
Как удалить символ из строки в Python?

Статьи
Автор Admin На чтение 3 мин Просмотров 868 Опубликовано 19.10.2023
Введение
В данной статье разберём все способы удалить символ из строки в Python.
Удаление символа из строки используя срезы
В данном способе мы создаем новую строку, объединяя две части исходной строки. Первая часть — это все символы до индекса, а вторая часть — это все символы после индекса:
string = "Пример строки" new_string = string[:1] + string[2:] print(new_string) # Вывод: Пимер строки
Удаление символа из строки используя метод replace()
Метод replace() заменяет все вхождения указанного символа на пустую строку, тем самым удаляя символ из строки:
string = "Пример строки" new_string = string.replace("р", "") print(new_string) # Вывод: Пиме стоки
Удаление символа из строки используя метод join() и генератор списков
В данном способе мы создаем новую строку, объединяя символы, которые не нужно удалять, с помощью метода join(). Генератор списков используется для фильтрации символов:
string = "Пример строки" new_string = "".join([i for i in string if i != "р"]) print(new_string) # Вывод: Пиме стоки
В генераторе мы проходимся по всем символам в строке. Если же в ходе перебора элементов строки был найден символ, который нужно удалить, то генератор его пропускает.
Удаление символа из строки используя метод translate()
Метод translate() используется для перевода символов в строке с помощью таблицы перевода. В данном способе мы создаем таблицу перевода с помощью функции maketrans() и передаем её в метод translate(). В таблице перевода указываем удаляемый символ, который будет удален из строки.
string = "Пример строки" deleting_character = "р" new_string = string.translate(str.maketrans("", "", deleting_character)) print(new_string) # Вывод: Пиме стоки
Заключение
В ходе статьи мы с Вами разобрали все способы удалить символ из строки в Python. Надеюсь Вам понравилась статья, желаю удачи и успехов!
Удаление символа из строки в Python

Одной из распространенных задач при работе со строками в Python является удаление определенного символа из строки. Это может быть полезно во множестве ситуаций, например, при обработке текстовых данных или при создании пользовательского интерфейса.
Рассмотрим простой пример. Допустим, у нас есть строка «ПРИМЕР», и мы хотим удалить из нее средний символ, то есть «М».
Python предоставляет несколько способов для решения этой задачи. Важно понимать, что строки в Python являются неизменяемыми, что означает, что они не могут быть изменены после создания. Это значит, что нам потребуется создать новую строку без определенного символа.
Особенности строк в Python
В Python строки не заканчиваются на какой-либо специальный символ. Это не так, как в некоторых других языках программирования, где строки могут заканчиваться нулевым символом. В Python строка может содержать любые символы и не имеет фиксированного окончания.
Способы удаления символа из строки
Есть несколько способов удаления символа из строки в Python, и выбор лучшего способа зависит от конкретного случая.
Один из способов — это «сдвиг» всех символов влево, начиная с символа, который нужно удалить. Это можно сделать с помощью срезов строк. Например, если нужно удалить средний символ из строки, можно взять все символы до среднего и объединить их со всеми символами после среднего.
s = "ПРИМЕР" middle = len(s) // 2 new_s = s[:middle] + s[middle+1:]
В этом случае new_s будет строкой «ПРИЕР».
Другой способ — это создание новой строки и копирование в нее всех символов исходной строки, за исключением того, который нужно удалить. Это можно сделать с помощью цикла for и условного оператора.
s = "ПРИМЕР" new_s = "" for i in range(len(s)): if i != len(s) // 2: new_s += s[i]
Также new_s будет строкой «ПРИЕР».
Эти два способа имеют разные плюсы и минусы. Сдвиг символов обычно быстрее, но он может быть менее понятным для новичков. Создание новой строки и копирование символов в нее более прямолинейно, но может быть медленнее, особенно для очень длинных строк.
Важно отметить, что оба этих способа работают только в случаях, когда известен индекс символа, который нужно удалить. Если нужно удалить символ по его значению, можно использовать метод replace() .
s = "ПРИМЕР" new_s = s.replace("М", "", 1)
В этом случае new_s также будет строкой «ПРИЕР». Метод replace() заменяет первое вхождение подстроки на новую подстроку. В данном случае мы заменяем «М» на пустую строку, тем самым удаляя его из исходной строки.