Как заменить символ в строке python
Перейти к содержимому

Как заменить символ в строке python

  • автор:

Замена символа в строке в Python

введите сюда описание изображения

Задание, котрое нужно сделать в python Вот, что я сделал.

s="у лукоморья 123 дуб зеленый 456" print(s) print(s.index('я')) #1 print(s.count('у')) #2 if s.isalpha(): print("Только из букв") else: print(str.capitalize(s)) #3 print(len(s)) if len(s)>4: print(str.lower(s)) #4 

Подскажите, как сделать пункт 5.
Отслеживать
49.3k 17 17 золотых знаков 57 57 серебряных знаков 101 101 бронзовый знак
задан 14 сен 2019 в 12:44
193 2 2 золотых знака 4 4 серебряных знака 10 10 бронзовых знаков
Замените изображения текстом.
14 сен 2019 в 13:07
Для работы со строками есть куча встроенных методов, в 5 пункте нужен метод replace()
14 сен 2019 в 13:07
14 сен 2019 в 15:15

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Строки в python неизменяемы, поэтому вы не можете рассматривать их как список и присваивать индексы.

line = line.replace(';', ':') 

Если вам нужно заменить только определенные точки с запятой, вам нужно быть более конкретным. Вы можете использовать нарезку, чтобы изолировать секцию строки для замены в:

line = line[:10].replace(';', ':') + line[10:] 

Это заменит все точки с запятой в первых 10 символах строки.

Метод str.replace() в Python, меняет подстроку/символ в строке

Производит поиск и замену подстроки (символа) в строке

Синтаксис:
str.replace(old, new[, count]) 
Параметры:
  • old — str , подстрока или символ который меняем
  • new — str , подстрока или символ на который меняем
  • count — int , сколько раз меняем
Возвращаемое значение:
  • измененная копия строки.
Описание:

Метод str.replace() вернет копию строки, в которой все вхождения подстроки old заменены на подстроку new .

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

Примечание. Производить поиск и замену подстроки/символа в строке можно так же при помощи регулярных выражений, используя функцию re.sub() .

Общие примеры замены подстроки/символа в строке.

# замена обратных кавычек в строке >>> x = 'все вхождения подстроки `old` заменены на подстроку `new`' >>> x.replace('`', '-') # 'все вхождения подстроки -old- заменены на подстроку -new-' # замена обратных кавычек с ограничением в 2 замены >>> x = '2 вхождения подстроки `old` заменены на подстроку `new`' >>> x.replace('`', '~', 2) # '2 вхождения подстроки ~old~ заменены на подстроку `new`' # замена нескольких значений >>> x.replace('old', 'старая').replace('new', 'новая') # 'все вхождения подстроки `старая` заменены на подстроку `новая`' 

Замены нескольких значений в строке одной операцией.

Для замены нескольких разных символов/подстрок в одной операции (множественная замена) необходимо определить функцию, которая будет принимать исходную строку и список символов/подстрок, каждая со своим новым значением. Символы/подстроки с новыми значениями можно передавать разными способами, например как список двойных кортежей в виде [(‘old’, ‘new’), . ] или как словарь, где ключ будет старым значением, а значение — новым . В зависимости от того, в каком виде передаются значения, будет строится логика извлечения этих значений для осуществления замены в исходной строке.

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

# примерная реализация функции множественной замены в строке # здесь еще нужно подумать над проверкой типов в кортежах . def replace(line, old_new_num): # при итерации по списку распаковываем кортежи на # старое и новое значения, а так же `n` - количество замен for vals in old_new_num: # если кортежа имеет 3 элемента, # значит присутствует количество замен if len(vals) == 3: # распаковываем кортеж old, new, n = vals # передаем аргументы методу и line = line.replace(old, new, n) elif len(vals) == 2: # распаковываем кортеж old, new = vals line = line.replace(old, new) else: # если в кортеже НЕ 2 или 3 элемента, # то поднимаем исключение raise 'кортеж должен состоять из 2-х или 3-х элементов' return line # сохраняем функцию в файл test.py и запускаем # $ python3 -i temp.py # исходная строка >>> line = 'абра-абра-кад-абра' # элементы кортежа означают: # ('заменяемое значение','новое значение', количество замен в строке) >>> replace_val = [('а', 'A', 3), ('б', 'Б'), ('кад', 'КАД')] >>> new_line = replace(line, replace_val) >>> new_line # 'AБрA-AБра-КАД-аБра' 

Из примера видим, что новая функция replace() работает как и ожидается, а именно символ ‘а’ заменился 3 раза, символ ‘б’ и подстрока ‘кад’ заменились по количеству совпадений.

  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Метод str.capitalize(), первая буква в строке заглавная
  • Метод str.casefold(), сворачивает регистр строки
  • Метод str.center(), выравнивает строку по центру
  • Метод str.count(), считает совпадения в строке
  • Метод str.encode(), преобразует строку в байты
  • Метод str.endswith(), совпадение с концом строки
  • Метод str.expandtabs(), меняет табуляцию на пробел
  • Метод str.find(), индекс первого совпадения в строке
  • Метод str.format(), форматирует строку
  • Метод str.format_map()
  • Метод str.index(), индекс первого совпадения подстроки
  • Метод str.isalnum(), строка состоит из цифр и букв
  • Метод str.isalpha(), строка состоит только из букв
  • Метод str.isascii(), все символы в строке являются ASCII
  • Метод str.isdecimal(), проверяет строку на десятичное число
  • Метод str.isdigit(), строка состоит только из цифр
  • Метод str.isidentifier() проверяет строку на идентификатор Python
  • Метод str.islower( ), проверяет строку на нижний регистр
  • Метод str.isnumeric(), проверяет строку на числовые символы
  • Метод str.isprintable(), проверяет на доступность для печати
  • Метод str.isspace(), является ли строка пробелом
  • Метод str.istitle(), проверяет наличие заглавных букв в словах
  • Метод str.isupper(), проверяет строку на верхний регистр
  • Метод str.join(), объединяет список строк
  • Метод str.ljust(), ровняет строку по левому краю
  • Метод str.lower(), строку в нижний регистр
  • Метод str.lstrip(), обрезает символы в начале строки
  • Метод str.maketrans(), таблица символов для str.translate()
  • Метод str.partition(), делит строку по первому совпадению
  • Метод str.removeprefix(), удаляет префикс строки
  • Метод str.removesuffix(), удаляет суффикс строки
  • Метод str.replace(), меняет подстроку/символ в строке
  • Метод str.rfind(), индекс последнего совпадения подстроки
  • Метод str.rindex(), индекс последнего совпадения в строке
  • Метод str.rjust(), ровняет строку по правому краю
  • Метод str.rpartition(), делит строку по последнему совпадению
  • Метод str.rsplit(), делит строку справа
  • Метод str.rstrip(), обрезает символы на конце строки
  • Метод str.split(), делит строку по подстроке
  • Метод str.splitlines(), делит текст по символу ‘\n’
  • Метод str.startswith(), совпадение с началом строки
  • Метод str.strip(), обрежет строку с обоих концов
  • Метод str.swapcase(), сменит регистр символов в строке
  • Метод str.title(), каждое слово с заглавной буквы
  • Метод str.translate(), транслирование строки
  • Метод str.upper(), переведет строку в верхний регистр
  • Метод str.zfill(), дополнит строку нулями
  • Форматирование строк в стиле printf
  • F-string. Форматированные строки

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

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

Наиболее быстрый способ — взять срез до и после необходимого символа:

i = 5 s = 'AABAABAAАA' result = s[:i] + 'A' + s[i+1:] # AABAAAAAАA 

Ещё вы можете преобразовать строку к списку. Список изменяемый, и вы можете перезаписать один из его элементов, а затем преобразовать список обратно в строку:

s = 'AABAABAAАA' li = list(s) li[5] = 'A' result = ''.join(li) # AABAAAAAАA 

Отслеживать
ответ дан 9 июн 2022 в 12:56
18.5k 5 5 золотых знаков 24 24 серебряных знака 49 49 бронзовых знаков

Тип bytes — это неизменяемая последовательность байтов. Каждый элемент такой последовательности может хранить целое число от О до 255, обозначающее код символа. Этот тип поддерживает боль- шинство строковых методов, однако при доступе по индексу возвра- щается целое число, а не символ.

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

s = bytearray('AABAABAAАA', 'utf-8') s[5] = bytes('A', 'utf-8')[0] print(str(s, 'utf-8')) 

Взято из Справочник PYTHON. Кратко, быстро, под рукой | Дубовик Е. В., Кольцов Д. М.

Функция str replace() в Python

Функция replace() в Python используется для создания строки путем замены некоторых частей другой строки.

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

Исходная строка остается неизменной. Новая строка – это копия исходной строки, в которой все вхождения старой подстроки заменены на новую.

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

Пример

Давайте посмотрим на несколько простых примеров использования функции string replace().

s = 'Java is Nice' # simple string replace example str_new = s.replace('Java', 'Python') print(str_new) # replace character in string s = 'dododo' str_new = s.replace('d', 'c') print(str_new)
Python is Nice cococo

Замена на count

s = 'dododo' str_new = s.replace('d', 'c', 2) print(str_new)

replace() с вводом пользователем

input_str = input('Please provide input data\n') delimiter = input('Please provide current delimiter\n') delimiter_new = input('Please provide new delimiter\n') output_str = input_str.replace(delimiter, delimiter_new) print('Updated Data =', output_str)
Please provide input data a,e,i,o,u Please provide current delimiter , Please provide new delimiter : Updated Data = a:e:i:o:u

Функция replace в python

Мы также можем использовать функцию str.replace(), как показано ниже.

print(str.replace('abca', 'a', 'A'))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *