Строки Python неизменяемы. Вы не можете изменять строку на месте. При изменении и присваивании ему то же имя, что и исходная строка, вы просто создаете новую строку, содержащую некоторое содержимое исходной строки.
Чтобы решить вашу проблему, вы можете сделать это.
>>> my_input = '1x'
>>> output = my_input[0] + '*' + my_input[1]
>>> output
1*x
Здесь вы вставляете '*'
между индексом 0 и индексом 1 входной строки.
Чтобы понять неизменность строк, давайте рассмотрим некоторые примеры.
Например 1:
>>> string1 = 'aacc'
>>> string2 = string1
Теперь мы вставим 'bb'
между строкой.
>>> string1 = string1[:2] + 'bb' + string1[2:]
>>> string1
aabbcc
>>> string2
aacc
Здесь string2
все еще относится к старому string1
. Фактически вы не изменили код string1
, но создали новый строковый объект.
Например 2:
>>> string1 = 'ac'
Теперь давайте вставить 'b'
между ними.
>>> string1[1:1] = 'b'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
's [0] + "*" + s [1]' –