Table of Contents
Удаление символов из строки в Python
В этой статье описаны два распространенных метода, которые можно использовать для удаления символов из строки с помощью Python:
- Строковый метод
replace()
- Строковый метод
translate()
Объект Python String является неизменяемым, поэтому мы не можем изменить его значение. Любой метод, который работает со строковым значением, возвращает новый строковый объект.
Примеры в этом руководстве, используют интерактивную консоль Python, для демонстрации различных методов удаления символов.
Удаление символов из строки с помощью метода replace()
Строковой метод replace()
, заменяет символ на новый символ. Мы можем удалить символ из строки, указав символ(ы) для замены в качестве первого аргумента и пустую строку в качестве второго аргумента.
Объявим строковую переменную:
s = 'abc12321cba'
Заменим символ пустой строкой:
print(s.replace('a', '')) bc12321cb
Вывод показывает, что оба вхождения символа a
были удалены из строки.
Удаление символов новой строки с помощью метода replace()
Объявите строковую переменную с некоторыми символами новой строки:
s = 'ab\ncd\nef'
И замените символ новой строки – пустой строкой:
print(s.replace('\n', '')) abcdef
Здесь мы видим, что оба символа новой строки \n
были удалены.
Удаление подстроки с помощью метода replace()
Метод replace()
, может принимать строки в качестве аргументов. Поэтому, мы также можем заменить слово в строке.
Объявим строковую переменную:
s = 'Helloabc'
Замените слово пустой строкой:
print(s.replace('Hello', '')) abc
Вывод показывает, что строка Hello была удалена из входящей строки.
Удаление символов указанное количество методом replace()
В метод replace()
, можно передать третий аргумент, чтобы указать количество замен в строке перед остановкой. Например, если в качестве третьего аргумента указать 2, то будут заменены только первые 2 вхождения заданных символов.
Объявим строковую переменную:
s = 'abababab'
Заменим первые два вхождения, новым символом:
print(s.replace('a', 'A', 2)) # perform replacement twice AbAbabab
Вывод показывает, что первые два вхождения символа a
были заменены символом A
. Поскольку замена была произведена только дважды, остальные вхождения символа a
остались в строке неизменными.
Удаление символов из строки с помощью метода translate()
Строковый метод translate()
, заменяет каждый символ в строке, используя заданную таблицу сопоставления или словарь.
Объявим строковую переменную:
s = 'abc12321cba'
Получим значение кодовой точки Unicode для символа b
и заменим его на None:
print(s.translate({ord('b'): None})) ac12321ca
Вывод показывает, что оба вхождения символа b
были удалены из строки, как было определено в пользовательском словаре.
Удаление нескольких символов из строки методом translate()
В следующем примере используется пользовательский словарь {ord(i): None for i in 'abc'}
, который заменяет все вхождения a
, b
и c
в заданной строке на None
.
Объявим строковую переменную:
s = 'abc12321cba'
Замените все символы abc
на None
:
print(s.translate({ord(i): None for i in 'abc'})) 12321
Удаление символов новой строки методом translate()
В следующем примере используется пользовательский словарь {ord('\n'): None}
, который заменяет все вхождения \n
в заданной строке на None
.
Объявим строковую переменную:
s = 'ab\ncd\nef'
Замените все символы \n
на None
:
print(s.translate({ord('\n'): None})) abcdef