Как заменить символ в строке по индексу?
Например: в строке AABAABAAАA нужно заменить именно 6й символ(по индексу 5) на A.
Ответы (2 шт):
Строки в 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
Тип bytes - это неизменяемая последовательность байтов. Каждый элемент такой последовательности может хранить целое число от О до 255, обозначающее код символа. Этот тип поддерживает боль- шинство строковых методов, однако при доступе по индексу возвра- щается целое число, а не символ.
Тип bytearray - это изменяемая последовательность байтов. Данный тип аналогичен типу bytes, но вы можете изменять элементы такой строки по индексу. Также этот тип содержит дополнительные методы, которые позволяют добавлять и удалять элементы.
s = bytearray('AABAABAAАA', 'utf-8')
s[5] = bytes('A', 'utf-8')[0]
print(str(s, 'utf-8'))
Взято из Справочник PYTHON. Кратко, быстро, под рукой | Дубовик Е. В., Кольцов Д. М.