Python 插入“-&引用;在长度可变的元素之后的字符串中
有没有办法将python中的字符串“12345678aaaa12345678bbbbbbb”转换为“12345678-aaaa-1234-5678-bbbbbbb”Python 插入“-&引用;在长度可变的元素之后的字符串中,python,Python,有没有办法将python中的字符串“12345678aaaa12345678bbbbbbb”转换为“12345678-aaaa-1234-5678-bbbbbbb” 我不知道该怎么做,因为我需要在可变长度的元素后面插入“-”,比如在第8个元素之后,然后是第4个元素,依此类推。Python字符串不能进行变异。我们所能做的是根据您的意愿创建另一个字符串,在字符串之间插入连字符 考虑字符串s=“12345678aaaa12345678bbbbb” 给出s[:8]+'-'+s[8:]将给出1234567
我不知道该怎么做,因为我需要在可变长度的元素后面插入“-”,比如在第8个元素之后,然后是第4个元素,依此类推。Python字符串不能进行变异。我们所能做的是根据您的意愿创建另一个字符串,在字符串之间插入连字符 考虑字符串s=“12345678aaaa12345678bbbbb” 给出
s[:8]+'-'+s[8:]将给出12345678-aaaa12345678bbbbb
通过调整:
值,可以根据需要设置连字符
有关添加连字符的更多方法,请参阅此问题线程以获取有关如何插入hypForhen的答案。
不能对Python字符串进行变异。我们所能做的是根据您的意愿创建另一个字符串,在字符串之间插入连字符 考虑字符串s=“12345678aaaa12345678bbbbb” 给出
s[:8]+'-'+s[8:]将给出12345678-aaaa12345678bbbbb
通过调整:
值,可以根据需要设置连字符
有关添加连字符的更多方法,请参阅此问题线程以获取有关如何插入hypForhen的答案。
此函数用于在字符串的某个位置插入字符:
def insert(char,position,string):
return string[:position] + char + string[position:]
此函数用于在字符串的某个位置插入字符:
def insert(char,position,string):
return string[:position] + char + string[position:]
最简单的解决方案:
str = '12345678aaaa12345678bbbbbbbb'
indexes = [8, 4, 4, 4]
i = -1
for index in indexes:
i = i + index + 1
str = str[:i] + '-' + str[i:]
print str
打印:12345678-aaaa-1234-5678-bbbbbbbb
您可以自由更改索引
数组以获得所需内容。最简单的解决方案:
str = '12345678aaaa12345678bbbbbbbb'
indexes = [8, 4, 4, 4]
i = -1
for index in indexes:
i = i + index + 1
str = str[:i] + '-' + str[i:]
print str
打印:12345678-aaaa-1234-5678-bbbbbbbb
您可以自由更改
索引
数组以获得所需内容。您可以按照以下流程操作:
def insert_(str, idx):
strlist = list(str)
strlist.insert(idx, '-')
return ''.join(strlist)
str = '12345678aaaa12345678bbbbbbbb'
indexes = [8, 4, 4, 4]
resStr = ""
idx = 0
for val in indexes:
idx += val
resStr = insert_(str,idx)
str = resStr
idx += 1
print(str)
输出:
12345678-aaaa-1234-5678-bbbbbbbb
您可以遵循以下流程:
def insert_(str, idx):
strlist = list(str)
strlist.insert(idx, '-')
return ''.join(strlist)
str = '12345678aaaa12345678bbbbbbbb'
indexes = [8, 4, 4, 4]
resStr = ""
idx = 0
for val in indexes:
idx += val
resStr = insert_(str,idx)
str = resStr
idx += 1
print(str)
输出:
12345678-aaaa-1234-5678-bbbbbbbb
这并不完全创建您想要的字符串,但无论如何都会发布它 它查找所有数字变为alpha的索引,反之亦然。 然后在这些索引处插入“-”
a = "12345678aaaa12345678bbbbbbbb"
lst = list(a)
index = []
for ind,i in enumerate(list(a)[:-1]):
if (i.isdigit() and lst[ind+1].isalpha()) or (i.isalpha() and lst[ind+1].isdigit()):
index.append(ind)
for i in index[::-1]:
lst.insert(i+1,"-")
''.join(lst)
“12345678-aaaa-12345678-bbbbbb”这并不完全创建您想要的字符串,但无论如何都会发布它 它查找所有数字变为alpha的索引,反之亦然。 然后在这些索引处插入“-”
a = "12345678aaaa12345678bbbbbbbb"
lst = list(a)
index = []
for ind,i in enumerate(list(a)[:-1]):
if (i.isdigit() and lst[ind+1].isalpha()) or (i.isalpha() and lst[ind+1].isdigit()):
index.append(ind)
for i in index[::-1]:
lst.insert(i+1,"-")
''.join(lst)
“12345678-aaaa-12345678-bbbbbb”如果您想一次性完成此操作,您可以这样做。 str=“12345678aa12345678bbbbb”
如果你想一次性完成,你可以这样做。 str=“12345678aa12345678bbbbb”
插入破折号的标准是什么?你自己试过什么吗?插入破折号的标准是什么?你自己试过什么吗?@NickA根据评论编辑了答案。@NickA根据评论编辑了答案。