基于delimeter python后面的字符拆分字符串

2024-06-17 03:11:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试根据要拆分的字符串后面的字符来拆分字符串。例如

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']。我怎样才能修复这个代码,或者我怎样才能解决这个问题?谢谢!你知道吗


Tags: to字符串you角色lenif字符else
1条回答
网友
1楼 · 发布于 2024-06-17 03:11:15

您可以使用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']]

相关问题 更多 >