Дата обновления: 23 Мая 2024
18.07.2023
6408
8 мин
author-avatar
Анна Уженкова

Замена символа в строке в Python — replace и другие методы

Строка в Питоне относится в неизменяемому типу данных — после создания не получится что-то поменять в ней. Поэтому замена нескольких символов в Python относится к одним из самых популярных операций при работе с текстовыми данными. В статье мы расскажем о методе String replace — как работает функция, что нужно сделать, что заменить один символ на другой. Раскроем особенности и других способов для замены символа в строке в Python, используя примеры.

Для тех, кто хочет углубить свои знания в Python, мы рекомендуем специализированные онлайн-курсы от Eduson Academy и Bang Bang Education. Они помогут вам освоить не только основы работы со строками, но и множество других важных аспектов программирования на Python.

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

Метод replace() в Python

Функция или метод replace() в Python используется для замены всех вхождений подстроки или строки полностью. Он возвращает новую строку, заменяя указанные символы обновлёнными значениями. String replace обладает таким синтаксисом:

str.replace(old, new[, count])

Подробнее:

  • String: строка, в которой нужно поменять символ или изменить подстроку.
  • Old: символ или подстрока, требующая подмены.
  • New: новая строка, на которую надо заменить найденную выше подстроку или символы.
  • Count (необязательный аргумент): то количество замен, которые необходимо выполнить. Без указания аргумента все вхождения будут заменены.

Новичкам в веб-разработке рекомендуем бесплатный курс «Веб-разработчик: с нуля до первого проекта». Вы узнаете, как устроена frontend-разработка, создадите свой первый сайт и выложите его на GitHub, как разработчик.

Пример применения метода replace() для замены символа в строке:

# Начальная строка 

text = «Hello, world!»

# Замена символа «,» на «!» 

my_str = text.replace(«,», «!»)

print(my_str) 

# Вывод: «Hello! world!»

Этот параметр также можно использовать для изменения слов в строке:

g = ‘Python is my favorite programming language. I love Python!’

new_g = g.replace(‘Python’, ‘PHP’)

print(new_g)

# ‘PHP is my favorite programming language. I love PHP!’

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

g = ‘abcabc’

new_g = g.replace(‘a’, ‘y’).replace(‘b’, ‘y’).replace(‘c’, ‘y’)

print(new_g) # ‘yyyyyy’

Доступно и изменение только первого или только последнего символа или слова. Сделать это довольно просто:

g = ‘Python is my favorite programming language. I love Python!’

new_g = g.replace(‘Python’, ‘PHP’, 1)

print(new_g)

# ‘PHP is my favorite programming language. I love Python!’

Поиск и замена нескольких значений:

names = [‘Anna’, ‘Emma’, ‘Oleg’, ‘Dmitriy’] 

# в новый список записываем элементы начального списка, измененные благодаря replace 

new_list = [_.replace(«A», «i», ) for names] 

print(new_list) 

# Вывод: [InnI’, ‘Emmi’, ‘Oleg’, ‘Dmitriy’]

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

В нашем блоге есть полезные статьи для Python-разработчиков, которые находятся в процессе обучения или совершенствуют свои навыки по созданию программ — например, материал о функциях append() и extend() для добавления элементов в список, или статья про установку Python на компьютер.

Девушка программирует за столом

Хотите стать Python-разработчиком, но не знаете, с чего начать? Онлайн-курсы программирования — всегда хороший вариант для старта. Лучшие курсы с сайта tutortop:

Метод translate() для замены символа в Питоне

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

Синтаксис:

string.translate(table[, deletechars])

Подробнее:

  • String: это исходная строка, где надо поменять символы
  • Table: это таблица перевода текстовых данных — это может быть словарь или объекта вроде str.maketrans, созданный с использованием метода str.maketrans().
  • Deletechars (необязательный аргумент): строка с символами, которые необходимо убрать из исходной строки.

Как translate помогает заменить символы в строке:

# Строка

 text = «Hello, world!» 

# Создание таблицы перевода символов 

translation_table = str.maketrans(«,», «!») 

# Замена символа «,» на «!» с использованием таблицы перевода 

new_text = text.translate(translation_table) 

print(new_text) 

# Вывод: «Hello! world!»

В этом примере таблица перевода создана с помощью метода str.maketrans() — указана символ «,» как символ для изменения  и символ «!». Этот метод позволяет выполнить замену именно в исходной строке. Есть ещё метод maketrans(), который создаёт таблицу сопоставления между первым символом и заменой для него. 

Описанные методы схожи по функционалу, но всё же отличаются друг от друга. Например, translate() может изменить лишь одиночные символы в строке, а replace() позволяет заменять целые строки различной длины. Также он может поменять нескольких букв за один вызов, replace() заменяет только одну подстроку за раз. Нельзя точно сказать, какой из этих вариантов лучше — для каждой из задач подходит свой метод. Но если вам нужно заменить несколько цифр или букв, лучше использовать translate(). Возможности replace() широки, в тому же функция выигрывает в оптимизации времени.

Если ваша цель — стать программистом, наша подборка топовых курсов поможет вам достичь успеха и реализовать свои профессиональные амбиции в этой области:

Регулярные выражения для замены символов в строке 

Ещё один вариант — регулярные выражения или Regular Expressions. Этот инструмент по работе с текстовыми данными пользуется широкой популярностью и также применяется для перемены символов. Чтобы поменять символ или подстроку можно воспользоваться функцией re.sub() из модуля re.

Синтаксис:

re.sub(шаблон, замена, строка)

Подробнее:

  • Шаблон: регулярное выражение, указывающее на символы, подстроки, которые необходимо найти в строке для изменения.
  • Замена: строка, на которую будут заменены найденные символы или подстроки.
  • Строка: стартовый вариант в котором меняются символы.

Пример:

import re 

# Строка

text = «Hello, world!» 

# Замена символа «,» на «!»  — регулярное выражение 

new_text = re.sub(r»,», «!», text)

print(new_text) 

# Вывод: «Hello! world!»

Человек на стуле пишет код

Итоги

В строки в языке программирования Python нельзя внести изменения просто так — для этого нужно использовать специальные методы. В статье мы рассказали о самых простых и популярных из них — replace, translate и функции re.sub(). Выбор наиболее подходящего варианта зависит от задачи, которая стоит перед вами — замена нескольких символов, замена подстроки или ограничение количества замен для более точного результата. Перед использованием программы рекомендуем изучить политику конфиденциальности по ссылке.

Хочу стать Python-разработчиком!
Специально для вас мы собрали отдельную подборку лучших онлайн-курсов по Python на рынке и сравнили их по цене, продолжительности и отзывам студентов.
Посмотреть подборку