Добавление символов в строку
Добавление символов в строку — это вставка одного символа или целого фрагмента в указанную позицию без удаления уже имеющихся символов. В Python строки неизменяемы, поэтому результат вставки сохраняют в новую строку или присваивают прежней переменной.
Как выполняется вставка
Сначала выбирают позицию \(i\). В Python индексы символов начинаются с нуля, а срез \(s[:i]\) содержит символы до позиции \(i\), не включая её. Срез \(s[i:]\) содержит символ с индексом \(i\) и все символы после него. Соединение трёх частей выполняется оператором \(+\).
Если \(i=0\), фрагмент добавляется в начало строки. Если \(i=\operatorname{len}(s)\), он добавляется в конец. Для выбора позиции и проверки индексов полезно знать перебор строки, а изменение конкретного символа относится уже к замене в строке.
Пусть \(s=\text{"Кот"}\), а нужно вставить строку \(\text{" и пёс"}\) после первого символа. Позиция вставки \(i=1\): \(s[:1]=\text{"К"}\), \(s[1:]=\text{"от"}\). Получаем: \(\text{"К"}+\text{" и пёс"}+\text{"от"}=\text{"К и пёсот"}\). Чтобы получить «Кот и пёс», вставлять нужно в позицию \(i=3\), то есть в конец.
Вставка сохраняет все исходные символы и только увеличивает длину строки. Удаление символов из строки уменьшает её длину, а замена изменяет символы или фрагмент на других. Нельзя присвоить значение отдельному символу строки напрямую: вместо этого создают новую строку из срезов.
Что получится после выполнения s = "abcd"; s = s[:2] + "XY" + s[2:]?
b и c, поэтому фрагмент вставляется именно туда.В задачах вставку часто выполняют внутри цикла: перебирают строку, находят нужную позицию и строят новую строку. Важно учитывать, что после добавления длина строки меняется, поэтому при последовательных вставках индексы могут смещаться. Для работы с отдельными знаками пригодится представление строки как массива символов.
Главное
- Вставка выполняется формулой \(s[:i]+t+s[i:]\).
- Позиция \(0\) означает начало, а позиция \(\operatorname{len}(s)\) — конец строки.
- Строки в Python неизменяемы: после вставки получают новую строку.