在Python中是否有任何函数可以用来在字符串的特定位置插入值?

就像这样:

“3655879ACB6”,然后在位置4添加“-”,变成“3655-879ACB6”


当前回答

我认为上面的答案很好,但我想解释一下,它们有一些意想不到但很好的副作用……

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之间,则插入字符串被插入到正确的位置。

其他回答

简单的函数来完成这个:

def insert_str(string, str_to_insert, index):
    return string[:index] + str_to_insert + string[index:]

我想添加另一个简单的一行程序解决方案;)

“-”。加入([_string [4], _string [4:]]

我做了一个非常有用的方法来在Python中的特定位置添加字符串:

def insertChar(mystring, position, chartoinsert ):
    mystring   =  mystring[:position] + chartoinsert + mystring[position:] 
    return mystring  

例如:

a = "Jorgesys was here!"

def insertChar(mystring, position, chartoinsert ):
    mystring   =  mystring[:position] + chartoinsert + mystring[position:] 
    return mystring   

#Inserting some characters with a defined position:    
print(insertChar(a,0, '-'))    
print(insertChar(a,9, '@'))    
print(insertChar(a,14, '%'))   

我们将有一个输出:

-Jorgesys was here!
Jorgesys @was here!
Jorgesys was h%ere!

我认为上面的答案很好,但我想解释一下,它们有一些意想不到但很好的副作用……

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()