Как удалить символы из строки в Python

Введение

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

  • метод replace() строки
  • метод translate() строки

Чтобы узнать несколько различных способов удаления пробелов из строки в Python, обратитесь к Удаление пробелов из строки в Python.

A Python String object is immutable, so you can’t change its value. Any method that manipulates a string value returns a new String object.

Примеры в этом учебнике используют интерактивную консоль Python в командной строке для демонстрации различных методов удаления символов.

Развертывайте ваши приложения Python из GitHub с помощью Платформы приложений DigitalOcean. Позвольте DigitalOcean масштабировать ваше приложение.

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

Метод replace() заменяет символ на новый символ. Вы можете удалить символ из строки, указав символ(ы) для замены в качестве первого аргумента и пустую строку в качестве второго аргумента.

Объявите переменную строки:

  1. s = 'abc12321cba'

Замените символ пустой строкой:

  1. print(s.replace('a', ''))

Вывод:

Output
bc12321cb

Вывод показывает, что оба вхождения символа a были удалены из строки.

Удаление символов новой строки из строки с использованием метода replace()

Объявите переменную строки с некоторыми символами новой строки:

  1. s = 'ab\ncd\nef'

Замените символ новой строки пустой строкой:

  1. print(s.replace('\n', ''))

Вывод:

Output
abcdef

Вывод показывает, что оба символа новой строки (\n) были удалены из строки.

Удаление подстроки из строки с использованием метода replace()

Метод replace() принимает строки в качестве аргументов, поэтому вы также можете заменить слово в строке.

Объявите переменную строки:

  1. s = 'Helloabc'

Замените слово пустой строкой:

  1. print(s.replace('Hello', ''))

Результат:

Output
abc

Результат показывает, что строка Hello была удалена из входной строки.

Удаление символов определенное количество раз с использованием метода replace()

Вы можете передать третий аргумент в метод replace(), чтобы указать количество замен, выполняемых в строке перед остановкой. Например, если вы укажете 2 в качестве третьего аргумента, то будут заменены только первые 2 вхождения заданных символов.

Объявите переменную строки:

  1. s = 'abababab'

Замените первые два вхождения символа новым символом:

  1. print(s.replace('a', 'A', 2)) # выполнить замену дважды

Результат:

Output
AbAbabab

Результат показывает, что первые два вхождения символа a были заменены символом A. Поскольку замена была сделана только дважды, остальные вхождения a остаются в строке.

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

Метод строки Python translate() заменяет каждый символ в строке с использованием заданной таблицы или словаря.

Объявите переменную строки:

  1. s = 'abc12321cba'

Получите кодовую точку Юникода символа и замените её на None:

  1. print(s.translate({ord('b'): None}))

Результат:

Output
ac12321ca

Результат показывает, что обе вхождения символа b были удалены из строки, как определено в пользовательском словаре.

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

Вы можете заменить несколько символов в строке с использованием метода translate(). В следующем примере используется пользовательский словарь, {ord(i): None for i in 'abc'}, который заменяет все вхождения a, b и c в данной строке на None.

Объявите строковую переменную:

  1. s = 'abc12321cba'

Замените все символы abc на None:

  1. print(s.translate({ord(i): None for i in 'abc'}))

Вывод:

Output
12321

Вывод показывает, что из строки были удалены все вхождения a, b и c, как определено в пользовательском словаре.

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

Вы можете заменить символы новой строки в строке с использованием метода translate(). В следующем примере используется пользовательский словарь {ord('\n'): None}, который заменяет все вхождения \n в данной строке на None.

Объявите переменную строки:

  1. s = 'ab\ncd\nef'

Замените все символы \n на None:

  1. print(s.translate({ord('\n'): None}))

Вывод:

Output
abcdef

Вывод показывает, что все вхождения символа новой строки \n были удалены из строки, как определено в пользовательском словаре.

Заключение

В этом руководстве вы узнали о некоторых методах, которые можно использовать для удаления символов из строк в Python. Продолжайте изучать строки Python.

Source:
https://www.digitalocean.com/community/tutorials/python-remove-character-from-string