Поиск по сайту:

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


Введение

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

  • метод String replace()
  • метод String translate()

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

Объект Python String неизменяем, поэтому вы не можете изменить его значение. Любой метод, который манипулирует строковым значением, возвращает новый объект String.

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

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

Метод String 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)) # perform replacement twice

Результат:

Output
AbAbabab

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

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

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

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

  1. s = 'abc12321cba'

Получите значение кодовой точки Unicode символа и замените его на 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.