Уведомления

Группа в Telegram: @pythonsu

#1 Июль 1, 2024 11:08:32

Haphazard
Зарегистрирован: 2024-06-14
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Генерация списка

Здравствуйте, как сделать? спасибо

 ll = r'\\Государственная граница\\Государственной границе\\Государственную границу\\ РФ'
spl = ll.split('\\\\')
if ll.strip().startswith('\\\\'): print([f'{i}{spl[-1]}' for i in spl[1:-1]]) # то что нужно = ['Государственная граница РФ', 'Государственной границе РФ', 'Государственную границу РФ']
ll = r'Правительство \\России\\РФ\\'
spl = ll.split('\\\\')
if ll.strip().endswith('\\\\'): ?? ['Правительство России', 'Правительство РФ']
ll = r'паспорт \\гражданина\\гражданки\\ РФ'
spl = ll.split('\\\\')
if not ll.strip().startswith('\\\\') and not ll.strip().endswith('\\\\'): ?? ['паспорт гражданина РФ', 'паспорт гражданки РФ']
в двух строчках где поставил знаки ?? и нужный результат

Офлайн

#2 Июль 2, 2024 10:37:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9844
Репутация: +  853  -
Профиль   Отправить e-mail  

Генерация списка

  
>>> def split(text):
...     if text.startswith(r'\\'):
...         parts = text.split(r'\\')
...         parts.remove('')
...         out = None, parts[:-1], parts[-1]
...     elif text.endswith(r'\\'):
...         parts = text.split(r'\\')
...         parts.remove('')
...         out = parts[0], parts[1:], None
...     elif r'\\' in text:
...         parts = text.split(r'\\')
...         out = parts[0], parts[1:-1], parts[-1]
...     else:
...         raise ValueError('Can\'t split text: ' + text)
...     return out
... 
>>> def compose(data):
...     out = []
...     text_start = data[0] or ''
...     text_end = data[-1] or ''
...     for text_middle in data[1]:
...         text = text_start + text_middle + text_end
...         out.append(text)
...     return out
... 
>>> def generate(text):
...     return compose(split(text))
... 
>>> generate(r'\\Государственная граница\\Государственной границе\\Государственную границу\\ РФ')
['Государственная граница РФ', 'Государственной границе РФ', 'Государственную границу РФ']
>>> 
>>> generate(r'Правительство \\России\\РФ\\')
['Правительство России', 'Правительство РФ']
>>> 
>>> generate(r'паспорт \\гражданина\\гражданки\\ РФ')
['паспорт гражданина РФ', 'паспорт гражданки РФ']
>>>



Отредактировано py.user.next (Июль 2, 2024 10:40:50)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version