Найти тему
Simple Prog

5 простых способов удалить символ из строки

Оглавление

Существует несколько методов, позволяющих удалить определенный символ из строки:

  • Примитивный метод.
  • Функция replace().
  • Срезы и конкатенация.
  • Метод join() и генератор списков.
  • Метод translate()

Важная деталь — строки в Python неизменяемы. Исходная строка останется нетронутой, а новую вернут методы, о которых написано выше.

1. Примитивный метод удаления символа из строки

Суть этого метода проста. Мы пишем цикл и создаем новую пустую строку. Цикл работает так: все символы кроме элемента с индексом n помещаются в новую строку. (n — индекс элемента, который нам нужно удалить)

input_str = "python"
# Выводим в консоль исходную строку
print ("Исходная строка: " + input_str)
result_str = ""
for i in range(0, len(input_str)):
----if i != 3:
--------result_str = result_str + input_str[i]
# Выводим в консоль строку после удаления i-го элемента
print ("Строка после удаления i-го элемента: " + result_str)

Вывод:

Исходная строка: python
Строка после удаления i-го элемента: pyton

2. Удаление элемента из строки с помощью метода replace()

str = "pythont"
print ("Исходная строка: " + str)
res_str = str.replace('t', '')
# Удаление всех 't'
print("Строка после удаления всех символов t: " + res_str)
# Удаление только первой t
res_str = str.replace('t', '', 1)
print ("Строка после удаления первого t: " + res_str)

Вывод:

Исходная строка: pythont
Строка после удаления всех символов t: pyhon
Строка после удаления первого t: pyhont

3. Удаление символа с помощью срезов и конкатенации

str = "python"
print ("Исходная строка: " + str)
# Удаляем элемент с индексом 3
# с помощью срезов и объединения
res_str = str[:3] + str[4:]
print ("Строка после удаления символа: " + res_str

Вывод:

Исходная строка: python
Строка после удаления символа: pyton

4. Удаление символа с помощью метода join() и генераторов списков

Суть этого метода в том, чтобы конвертировать строку в эквивалентный список. После этого все элементы кроме того, который мы собираемся удалить, объединяются в строку.

str = "python"
print("Исходная строка: " + str)
# Удаление элемента с индексом 2
# с помощью join() и генератора списков
res_str = ''.join([str[i] for i in range(len(str)) if i != 2])
print("Строка после удаления символа: " + res_str)

Вывод:

Исходная строка: python
Строка после удаления символа: pyhon

5. Удаление символа из строки с помощью метода translate()

str = 'python123python'
print(str.translate({ord(i): None for i in '123'}))

Вывод:

pythonpython

Не забывайте подписываться и ставить лайки!