Существует несколько методов, позволяющих удалить определенный символ из строки:
- Примитивный метод.
- Функция 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