python:在每个子字符串后面的2个位置插入一个字符

python:在每个子字符串后面的2个位置插入一个字符,python,Python,我有一个字符串:'51.6251.8750.6951.4651.462626200',我想得到这样一个列表:['51.62','51.87','50.69','51.46','51.46','2626200'] 所以,基本上,在找到一个点之后,字符串应该被拆分2个位置 现在,我有以下内容,在这里我创建了一个所有点位置的列表,不确定是否是这样 import re string = '51.6251.8750.6951.4651.462626200' k = 2 # I couldn't fi

我有一个字符串:
'51.6251.8750.6951.4651.462626200'
,我想得到这样一个列表:
['51.62','51.87','50.69','51.46','51.46','2626200']

所以,基本上,在找到一个点之后,字符串应该被拆分2个位置

现在,我有以下内容,在这里我创建了一个所有点位置的列表,不确定是否是这样

import re

string = '51.6251.8750.6951.4651.462626200'

k = 2

# I couldn't find the position of the dot actually, so I had to replace for something first, it may be unecessary

subString = '-'

replacedString = re.sub('[.]', subString, string)

# create a list with all positions of the substring

subStringPosition = [i.start() for i in re.finditer(subString, replacedString)]

# add k to each element of the subStringPosition

subStringAfterK = [x + k for x in subStringPosition]

如果有人能帮助我,我将不胜感激。

您可以使用regex方法来实现此结果
split
findall
,过期时间为
\d{2}\.\d{2}
,即2位数字后跟。和另外两位数字。
findall
中,它将返回所有的2个数字和2个数字。在
拆分[-1]
中,它将返回字符串的其余部分

string = "51.6251.8750.6951.4651.462626200"
result = re.findall(r"\d{2}\.\d{2}", string)
result.append(re.split(r"\d{2}\.\d{2}", string)[-1])
print(result)
输出

['51.62', '51.87', '50.69', '51.46', '51.46', '2626200']
您可以使用:

# string = '51.6251.8750.6951.4651.462626200'
matches = re.split(r'(?<=\.\d{2})', string)

您可以测试正则表达式。

对于不使用
re
的解决方案:

def拆分:
nums=[]
而s中的“.”
i=s.find(“.”)
n=s[:i+3]
s=s[i+3:]
nums.append(n)
如果是:
nums.append(s)
返回nums
#print(matches)
['51.62', '51.87', '50.69', '51.46', '51.46', '2626200']