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

Например: в строке AABAABAAАA нужно заменить именно 6й символ(по индексу 5) на A.


Ответы (2 шт):

Автор решения: nomnoms12

Строки в 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
→ Ссылка
Автор решения: gglin

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

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

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

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

→ Ссылка