Вы очень близки, вам просто нужно разделить значение на пробел, а затем зациклить значение, если значение равно 3d
, не меняйте его, иначе измените его
import re;
s = 'd3 4 3d'
rep_ls = re.split(r'\s+', s)
final = ''
for n in rep_ls:
if n == '3d':
final +=' 3d'
continue
final += ' ' + re.sub(r'\d+','',n)
print(final)
Обрежьтестрока в конце, чтобы удалить лишний пробел или использовать оператор if, чтобы не добавлять пробел, когда индекс равен 0
Или вы можете использовать словарь и присоединиться к ним позже
import re;
s = 'd3 4 3d'
rep_ls = re.split(r'\s+', s)
final = []
for n in rep_ls:
if n == '3d':
final.append(n)
continue
final.append(re.sub(r'\d+','',n))
final = " ".join(final)
print(final)
Вывод >> d 3d