在Python中是否有任何函数可以用来在字符串的特定位置插入值?
就像这样:
“3655879ACB6”,然后在位置4添加“-”,变成“3655-879ACB6”
在Python中是否有任何函数可以用来在字符串的特定位置插入值?
就像这样:
“3655879ACB6”,然后在位置4添加“-”,变成“3655-879ACB6”
当前回答
简单的函数来完成这个:
def insert_str(string, str_to_insert, index):
return string[:index] + str_to_insert + string[index:]
其他回答
简单的函数来完成这个:
def insert_str(string, str_to_insert, index):
return string[:index] + str_to_insert + string[index:]
Python 3.6+使用f-string:
mys = '1362511338314'
f"{mys[:10]}_{mys[10:]}"
给了
'1362511338_314'
我认为上面的答案很好,但我想解释一下,它们有一些意想不到但很好的副作用……
def insert(string_s, insert_s, pos_i=0):
return string_s[:pos_i] + insert_s + string_s[pos_i:]
如果pos_i索引非常小(太负),则插入字符串将被前置。如果太长,则追加插入字符串。如果pos_i在-len(string_s)和+len(string_s) - 1之间,则插入字符串被插入到正确的位置。
如果你想要很多插入
from rope.base.codeanalyze import ChangeCollector
c = ChangeCollector(code)
c.add_change(5, 5, '<span style="background-color:#339999;">')
c.add_change(10, 10, '</span>')
rend_code = c.get_changed()
不。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'