Заменить серию одного и того же символа на количество его вхождений в серию.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Заменить серию одного и того же символа на количество его вхождений в серию.

Сообщение Anonymous »

Я получаю такую ​​строку:

Код: Выделить всё

AABBBB$CCCDEEE$AABADEE
И мне нужен такой результат:

Код: Выделить всё

2A4B$3CD3E$2ABAD2E
Для этого я создал цикл for для массива строк.
Это работает хорошо:

Код: Выделить всё

import re

string = "AABBBB$CCCDEEE$AABADEE"
out_string = string[:]
k = 1
c_old = ""
for c in string:
if c_old==c :
k += 1
else:
if k>1:
s= ""
for i in range(k):
s += c_old
chg = str(k) + c_old
out_string = re.sub(s, chg, out_string, 1)
k = 1
c_old = c

print(out_string)
Но с очень длинными строками это может занять много времени.
Есть ли способ сделать то, что я хочу, не перебирая всю строку, особенно с модулем re?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -the-serie
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»