Есть ли в Python функция, которую я могу использовать, чтобы вставить значение в определенную позицию строки?
Что-то вроде этого:
"3655879ACB6"
затем в позиции 4 добавить, "-"
чтобы стать"3655-879ACB6"
Нет. Строки Python неизменны.
>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
Однако возможно создать новую строку с вставленным символом:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
s[:-4]
Это кажется очень простым:
Однако, если вам нравится что-то вроде функции, сделайте так:
источник
Поскольку строки являются неизменяемыми, другой способ сделать это состоит в том, чтобы превратить строку в список, который затем можно проиндексировать и изменить без какой-либо хитрости среза. Однако, чтобы вернуть список обратно в строку, вам нужно будет использовать
.join()
пустую строку.Я не уверен, как это соотносится с производительностью, но я чувствую, что это проще для глаз, чем другие решения. ;-)
источник
Простая функция для достижения этой цели:
источник
Я сделал очень полезный метод для добавления строки в определенную позицию в Python :
например:
мы будем иметь в качестве выхода:
источник
Я думаю, что приведенные выше ответы хороши, но я бы объяснил, что есть некоторые неожиданные, но хорошие побочные эффекты для них ...
Если индекс pos_i очень маленький (слишком отрицательный), вставляется строка вставки. Если он слишком длинный, строка вставки добавляется. Если pos_i находится между -len (string_s) и + len (string_s) - 1, строка вставки вставляется в правильное место.
источник
Python 3.6+ с использованием f-строки:
дает
источник
Если вы хотите много вкладышей
источник