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

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

Хотите скачать книги по Python в 2 клика? Тогда вам в наш телеграм канал PythonBooks 
  • Примитивный метод.
  • Функция replace().
  • Срезы и конкатенация.
  • Метод join() и генератор списков.
  • Метод translate()

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

Задачи по строкам и решения к ним у нас в телеграм канале PythonTurbo

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

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

input_str = "pythonist"
   
# Выводим в консоль исходную строку
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)

Вывод:

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

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

str = "pythonist"

print ("Исходная строка: " + str) 

res_str = str.replace('t', '') 

# Удаление всех 't' 
print("Строка после удаления всех символов t: " + res_str) 

# Удаление только первой t 
res_str = str.replace('t', '', 1) 

print ("Строка после удаления первого t: " + res_str)

Вывод:

 Исходная строка: pythonist 
 Строка после удаления всех символов t: pyhonis 
 Строка после удаления первого t: pyhonist 

Мини-задачка для вашей тренировки метода replace()

«Напишите программу на Python для получения строки из заданной строки, в которой все вхождения первого символа заменены на ‘$’, кроме самого первого символа.»

Пример: print(change_char(‘restart’))
»»» resta$t

Решение задачки можно глянуть у нас в канале

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

str = "pythonist"

print ("Исходная строка: " + str) 

# Удаляем элемент с индексом 3 
# с помощью срезов и объединения
res_str = str[:3] +  str[4:]

print ("Строка после удаления символа: " + res_str

Вывод:

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

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

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

str = "pythonist"

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

print("Строка после удаления символа: " + res_str)

Вывод:

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

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

str = 'pythonist123pythonist'

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

Вывод:

 pythonistpythonist