Как поместить символ строки в определенную позицию в python - PullRequest
1 голос
/ 15 апреля 2020

Привет, ребята, есть способ правильно расположить оператор / строки в определенной позиции. Мне удалось успешно обработать текст для постоянного мониторинга ежедневных результатов Covid-19, но результат не так хорошо распределен, как я хочу. Пример моего вывода ниже

2,016,549Всего подтвержденных случаев18,112Сегодня 127,635Всего смертей1,056Сегодня 492,338Подтвержденные восстановления24,373Сегодня 1396,576Действующие подтвержденные случаи51,522 (4%) Критические 21% Смертность / закрытые случаи6% Смертность / подтвержденные случаи 16 096 027 Итоговые тесты337 502 Сегодня.

Я бы предпочел, чтобы результат был как минимум более читабельным, как этот

2 015 031 Всего подтвержденных случаев 16 594 Сегодня 127 541 Всего смертей 962 Сегодня 490 534 Подтвержденные восстановления 22 569 Сегодня 1 396 956 Активно подтвержденные случаи 51 570 (4%) Критические 21% Смертность / закрытые случаи 6% Смертность / подтвержденные случаи 16 061 619 Всего тестов 303 094 Сегодня

я перепробовал все, что могу прочитать, используя соединение (), split () и я все еще не получил нужный результат. Мне пришлось вручную разместить лучший результат в текстовом файле. если мне всегда нужно вручную пробелить его, тогда вся цель потеряна

1 Ответ

0 голосов
/ 15 апреля 2020

Вы можете попробовать использовать re.sub здесь:

inp = "2,016,549Total confirmed cases18,112Today 127,635Total deaths1,056Today 492,338Confirmed recoveries24,373Today 1,396,576Active confirmed cases51,522 (4%)Critical 21%Mortality / closed cases6%Mortality / confirmed cases 16,096,027Total tests337,502Today."
output = re.sub(r'(?<=[a-z])(\d)', ' \\1', inp, flags=re.I)
output = re.sub(r'(\d)(?=[a-z])', '\\1 ', output, flags=re.I)
print(output)

Это печатает:

2,016,549 Total confirmed cases 18,112 Today 127,635 Total deaths 1,056 Today 492,338 Confirmed recoveries 24,373 Today 1,396,576 Active confirmed cases 51,522 (4%)Critical 21%Mortality / closed cases 6%Mortality / confirmed cases 16,096,027 Total tests 337,502 Today.

Логотип замены регулярного выражения c здесь для сопоставления и захвата одного ди git, которому предшествует или предшествует соседняя буква. Если найдется совпадение, мы заменим на тот же di git вместе с дополнительным пробелом для заполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...