Разделение строки на основе символа после разделителя - python - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь разбить строку на основе символа после символа, на который она разделяется. Например,

k="I would like to eat you"
specialsplit(k,' ')

вернется

['I ', 'ould ', 'ike ', 'o ', 'at ', 'ou']

и

k="I would like to eat you"
specialsplit(k,'e')

вернется

['I would like', 'to e', 't you']

Персонаж, на которого он разделен, не исчезает, как нормальное разделение, но персонаж после него. Я пробовал

def specialsplit(k,d):
    return [e[1:]+d if c!=0 or c==(len(k)-1) else e[:-1] if c==len(k)-1 else e+d for c,e in enumerate(k.split(d))]

но он всегда добавляет символ, разделяемый на последний элемент, поэтому во втором примере он возвращает ['I would like', 'to e', 't youe'] вместо ['I would like', 'to e', 't you']. Как я могу исправить этот код, или как еще я могу решить это? Спасибо!

1 Ответ

0 голосов
/ 31 августа 2018

Вы можете использовать re.split:

import re
def specialsplit(_input, _char):
  return re.split(f'(?<={_char})[\w\W]', _input)

print([specialsplit("I would like to eat you", i) for i in [' ', 'e']])

Выход:

[['I ', 'ould ', 'ike ', 'o ', 'at ', 'ou'], ['I would like', 'to e', 't you']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...