在Python中是否有任何函数可以用来在字符串的特定位置插入值?
就像这样:
“3655879ACB6”,然后在位置4添加“-”,变成“3655-879ACB6”
在Python中是否有任何函数可以用来在字符串的特定位置插入值?
就像这样:
“3655879ACB6”,然后在位置4添加“-”,变成“3655-879ACB6”
当前回答
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之间,则插入字符串被插入到正确的位置。
如果需要在多个位置插入给定的字符,请始终考虑创建一个子字符串列表,然后使用.join()而不是+进行字符串连接。这是因为,由于Python的str是可变的,+字符串连接总是增加额外的开销。更多信息可以在这里找到。
我做了一个非常有用的方法来在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!
我想添加另一个简单的一行程序解决方案;)
“-”。加入([_string [4], _string [4:]]
Python 3.6+使用f-string:
mys = '1362511338314'
f"{mys[:10]}_{mys[10:]}"
给了
'1362511338_314'