Найти - Пользователи
Полная версия: Обработка текстовой строки - вставка пробела через каждые 4 символа.
Начало » Python для новичков » Обработка текстовой строки - вставка пробела через каждые 4 символа.
1
NiOl
Сижу уже полчаса, понимаю, что должно быть красивое “питоническое” решение ))) но ничего не приходит в голову.

Итак, есть строка, длина всегда разная, допустим
s1='ABCDEFGHIJKLMNOPQRSTUV'

Хочу получить с пробелами, начиная с конца, через каждые 4 символа, типа:
s2='AB CDEF GHIJ KLMN OPQR STUV'
развернуть строку, взять каждый 4й символ с любой позиции - просто, но соединить неполучается.

Ведь должно быть красивое однострочное решение без медлительных циклов?
(мне их много нужно, почти риалтайм на медленных РС)
doza_and
NiOl
почти риалтайм
:) В темпе чтения человеком чтоли?
 >>> re.sub("(.{4})",r"\1 ","aaaaaaaaaaaaaaaaaaaaaaa")
'aaaa aaaa aaaa aaaa aaaa aaa'
NiOl
начиная с конца, через каждые 4 символа,

Это уже крайне противоестественно для REALTIME. Алгоритм будет двухпроходный сначала длину надо определить, потом бить.
Вам точно надо с конца???
vic57
 >>> s ='qqqwwweeerrrttt' 
>>> out = []
>>> while s:
    out.append(s[-4:])
    s = s[:-4]
>>> ' '.join(out[::-1])
'qqq wwwe eerr rttt'
>>> 
py.user.next
  
>>> import re
>>> 
>>> s = 'ABCDEFGHIJKLMNOPQRSTUV'
>>> s = re.sub(r'.{4}', r'\g<0> ', s[::-1])[::-1]
>>> s
'AB CDEF GHIJ KLMN OPQR STUV'
>>>
NiOl
Всем спасибо, буду курить “re”, надеюсь это стандартный модуль!
py.user.next
NiOl
надеюсь это стандартный модуль
Список модулей стандартной библиотеки
https://docs.python.org/3/library/index.html
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB