Как заменить только 6-й элемент строки
Есть строка:
s2 = "xxxxxxxxxxxxxxx"
ss = s2.replace(s2[6], "X")
print(ss)
И я хочу заменить на «Х» только 6-й элемент строки, а мне заменяет полностью строку на «ХХХХХХХХХХХХХХ»
Что делать?
Ответы (3 шт):
Автор решения: CrazyElf
→ Ссылка
Ну например можно разобрать строку в список по отдельным буквам и делать с конкретными позициями что хотите:
s2 = "xxxxxxxxxxxxxxx"
l2 = list(s2)
l2[6] = "X"
ss = ''.join(l2)
print(ss)
# xxxxxxXxxxxxxxx
Автор решения: Эникейщик
→ Ссылка
Ваш код делает совсем не то, что вам кажется он должен делать. Разберем предложение s2.replace(s2[6], "X") по составу:
s2 равно "xxxxxxxxxxxxxxx", s2[6] равно "x". Подставим в исходную строчку, получим
"xxxxxxxxxxxxxxx".replace("x", "X") - т.е. просим заменить в строке "xxxxxxxxxxxxxxx" каждый символ "x" на "X". Что и происходит.
Автор решения: SergFSM
→ Ссылка
можно с помощью регулярки сделать замену:
from re import sub
s2 = "xxxxxxxxxxxxxxx"
sub(r'^(.{5})(.)',r'\1X',s2) # 'xxxxxXxxxxxxxxx'