Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 插入“-&引用;在长度可变的元素之后的字符串中_Python - Fatal编程技术网

Python 插入“-&引用;在长度可变的元素之后的字符串中

Python 插入“-&引用;在长度可变的元素之后的字符串中,python,Python,有没有办法将python中的字符串“12345678aaaa12345678bbbbbbb”转换为“12345678-aaaa-1234-5678-bbbbbbb” 我不知道该怎么做,因为我需要在可变长度的元素后面插入“-”,比如在第8个元素之后,然后是第4个元素,依此类推。Python字符串不能进行变异。我们所能做的是根据您的意愿创建另一个字符串,在字符串之间插入连字符 考虑字符串s=“12345678aaaa12345678bbbbb” 给出s[:8]+'-'+s[8:]将给出1234567

有没有办法将python中的字符串“12345678aaaa12345678bbbbbbb”转换为“12345678-aaaa-1234-5678-bbbbbbb”


我不知道该怎么做,因为我需要在可变长度的元素后面插入“-”,比如在第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根据评论编辑了答案。