Замена строки в Python | Замена строки Python [2022]

Опубликовано: 2021-01-02

Замена символов и строк в Python является важной задачей, когда речь идет о очистке данных или обработке текста. В ваших данных могут быть проблемы с форматированием из-за мусорных символов, которые необходимо удалить, в категориях могут быть проблемы с орфографией и т. д. Кроме того, при предварительной обработке текста для проблем, основанных на НЛП, замена строки является самым основным и важным шагом при подготовке текстовых данных.

В этом уроке мы рассмотрим несколько способов замены различных типов строк. Если вы хотите заняться наукой о данных, ознакомьтесь с нашими сертификатами по науке о данных. К концу этого урока вы будете знать следующее:

  • Метод замены Python ()
  • Метод подпрограммы регулярного выражения()
  • присоединиться() и фильтровать()
  • Замена числовых данных в строках

Оглавление

Замена Python()

Метод replace(old_str, new_str, count) состоит из 3 аргументов:

  • old_str: строка или часть строки, которую необходимо заменить
  • new_str: строка, которой необходимо заменить старую строку.
  • count: количество раз, когда необходимо заменить конкретную строку

Давайте рассмотрим несколько примеров, чтобы понять работу.

Одиночная замена

Mystr = «Это образец строки»
Newsstr = Mystr.replace ( «есть» , «было» )

#Выход:
Это была примерная строка

Если вы помните, строки в Python неизменяемы. Поэтому, когда мы вызываем метод replace, он, по сути, создает другой строковый объект с измененными данными. Более того, в приведенном выше примере мы не указали параметр count. Если не указано, метод замены заменит все вхождения строки.

Множественная замена

Mystr = «Это образец строки»
Newsstr = Mystr.replace ( «s» , «X» )

#Выход:
ThiX iX пример Xstring

Множественная замена первых n вхождений

Если вам нужны только первые N вхождений,

Mystr = «Это образец строки»
Newsstr = Mystr.replace ( «s» , «X» , 3 )

#Выход:
ThiX iX строка примера

Замена нескольких строк

В приведенных выше примерах мы заменили одну строку разное количество раз. А что если вы хотите заменить разные строки в одной большой строке. Мы можем написать для него эффективную функцию и сделать это, используя тот же метод.

Рассмотрим пример, как указано выше, но теперь мы хотим заменить «h», «is» и «ng» на «X».

def MultipleStrings (mainStr, strReplaceList, newStr) :
# Перебираем строки, которые нужно заменить
для элемента в strReplaceList :
# Проверяем, находится ли строка в основной строке
если элемент в mainStr :
# Заменить строку
mainStr = mainStr.replace(elem, newStr)

вернуть mainStr

Mystr = «Это образец строки»
Newsstr = MultipleStrings(Mystr, [ 'h' , 'is' , 'ng' ] , «X» )

#Выход:
TXX X образец striX

Читайте: Учебник по Python

Замена регулярным выражением

Регулярное выражение Python — это модуль, специально предназначенный для работы с текстовыми данными — будь то поиск подстрок, замена строк или что-то еще. Regex имеет функцию sub() для простого поиска и замены/подстановки подстрок. Давайте рассмотрим его синтаксис и несколько вариантов использования.

Функция regex.sub(шаблон, замена, исходная_строка) принимает 3 аргумента:

  • шаблон: подстрока, которую необходимо сопоставить и заменить.
  • замена: может быть строкой, которую необходимо поместить на место, или вызываемой функцией, которая возвращает значение, которое необходимо поместить на место.
  • original_string: основная строка, в которой необходимо заменить подстроку.

Так же, как метод замены, регулярное выражение также создает другой строковый объект с измененной строкой. Давайте рассмотрим несколько рабочих примеров.

Удаление пробелов

Пробелы можно рассматривать как специальные символы и заменять их другими символами. В приведенном ниже примере мы намерены заменить пробелы на «X».

импортировать повторно
Mystr = «Это образец строки»
# Заменить все пробелы в Mystr на 'X'
Newsstr = re.sub( r”\s+” , 'X' , Mystr)

#Выход:
ThisXisXaXsampleXstring


Как мы видим, все пробелы были заменены. Шаблон задается как r”\s+”, что означает все пробельные символы.

Удаление всех специальных символов

Чтобы удалить все специальные символы, мы передадим шаблон, соответствующий всем специальным символам.

импортировать повторно
строка импорта
Mystr = «Tempo@@&[(000)]%%$@@66isit$$#$%-+Str»
шаблон = г'[' + строка.пунктуация + ']'
# Заменить все специальные символы в строке на X
Newsstr = re.sub(шаблон, 'X' , Mystr)

#Выход:
TempoXXXXX000XXXXXXX66isitXXXXXXXStr

Удаление подстроки как нечувствительной к регистру

В реальных данных могут быть случаи, когда может быть много версий одного и того же слова с разными символами верхнего и нижнего регистра. Чтобы удалить их все, поместите все слова отдельно, так как шаблон не будет эффективным. Функция regex sub() принимает флаг re.IGNORECASE, чтобы игнорировать регистры. Давайте посмотрим, как это работает.

импортировать повторно
Mystr = «Это образец Istring»
# Замена подстроки в строке без учета регистра
Newsstr = re.sub( r'is' , '**' , Mystr, flags=re.IGNORECASE)

#Выход:
Th ** ** образец ** строка

Удаление нескольких символов с помощью регулярного выражения

Функция регулярного выражения может легко удалить несколько символов из строки. Ниже приведен пример.

импортировать повторно
Mystr = «Это образец строки»
шаблон = r'[hsa]'
# Удалить символы «h», «s» и «a» из строки
Newsstr = re.sub(шаблон, " , Mystr)

#Выход:
Ти я простой тринг

Замена с помощью join()

Другой способ удалить или заменить символы — перебрать строку и проверить их на соответствие некоторому условию.

список символов = [ 'ч' , 'с' , 'а' ]
Mystr = «Это образец строки»
# Удалить все символы в списке из строки
Newstr = .join((элемент для элемента в Mystr , если элемент отсутствует в charList))

#Выход:
Ти я простой тринг

Замена с использованием join() и filter()

Приведенный выше пример также можно выполнить с помощью функции фильтра.

Mystr = «Это образец строки»
список символов = [ 'ч' , 'с' , 'а' ]
# Удалить все символы в списке из строки
Newsstr = "" .join(filter( lambda k: k не в charList , Mystr))

#Выход:
Я просто пытаюсь

Обязательно к прочтению: Увлекательные приложения Python в реальном мире

Замена номеров

Часто числовые данные также присутствуют в строках, которые, возможно, потребуется удалить и обработать отдельно как другой признак. Давайте рассмотрим несколько примеров, чтобы увидеть, как это можно реализовать.

Использование регулярного выражения

Рассмотрим приведенную ниже строку, из которой нам нужно удалить числовые данные.

Mystr = «Образец строки 9211 года 20xx»
шаблон = г'[0-9]'
# Сопоставить все цифры в строке и заменить их пустой строкой
Newsstr = re.sub(шаблон, "" , Mystr)

#Выход:
Образец строки года xx

В приведенном выше коде мы используем шаблон сопоставления r'[0-9]' для сопоставления всех цифр.

Использование функции соединения ()

Мы также можем перебирать строку и отфильтровывать цифры, используя метод isdigit() , который возвращает False для алфавитов.

Mystr = «Образец строки 9211 года 20xx»
# Перебирает символы в строке и объединяет все символы, кроме цифр
Newstr = "" .join((элемент для элемента в Mystr , если не item.isdigit()))

#Выход:
Образец строки года xx

Использование join() и filter()

Точно так же мы можем также поместить условие фильтрации в функцию фильтра, чтобы возвращать только те символы, которые возвращают True .

Mystr = «Образец строки 9211 года 20xx»

# Отфильтровать все цифры из символов в строке и соединить оставшиеся символы
Newsstr = "" .join(filter( элемент лямбда : не item.isdigit(), Mystr))

#Выход:
Образец строки года xx

Прежде чем ты уйдешь

Мы рассмотрели множество примеров, показывающих различные способы удаления или замены символов/пробелов/цифр из строки. Мы настоятельно рекомендуем вам попробовать больше примеров и различных способов выполнения приведенных выше примеров, а также больше собственных примеров.

Если вам интересно узнать о python и науке о данных, ознакомьтесь с программой Executive PG IIIT-B и upGrad по науке о данных, которая создана для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические практические семинары, наставничество с отраслевыми экспертами. , общение один на один с отраслевыми наставниками, более 400 часов обучения и помощь в трудоустройстве в ведущих фирмах.

Зачем нужен метод замены строки в Python?

Эта функция становится очень полезной, когда вы применяете к ней методы очистки данных. С помощью этой функции можно легко удалить ненужные или мусорные символы. Замена строк или символов используется не только при очистке данных, но и при обработке задач НЛП.
Наличие этих типов методов для работы со строками важно, поскольку вся область науки о данных имеет дело с огромными блоками данных.

Каковы преимущества использования строковых типов данных?

Строки полезны, так как вы можете легко хранить большие объемы данных, используя этот тип данных. Python поддерживает большое количество полезных методов для выполнения операций со строками. Кроме того, строки в Python изменяемы, что снижает количество ошибок и снижает затраты.
Строка является одним из наиболее часто используемых встроенных типов данных в Python. Не только в python, но и во многих других языках он также поддерживается как предопределенный тип данных и поддерживает различные методы для работы с ними.