创建要在分隔符上拆分的函数

2024-07-05 14:26:19 发布

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

此函数接受两个参数,text和分隔符,这两个参数都是字符串,并从text返回一个非空、非空字符串列表,通过在任何分隔符上拆分文本来确定。 分隔符是一组单字符分隔符。你知道吗

举个例子:

def split_on_separators(text, separators)
>>>split_on_separators("Hooray! Finally, we're done.", "!,")
['Hooray', ' Finally', " we're done."]

到目前为止,我的情况是:

    location_of_sep = []
    result = []
    for i in range(len(text)):
        if original[i] in separators:
            location_of_sep.append(i)

我被这部分困住了。现在我已经知道了分隔符的位置,如何将其添加到列表结果中。 我尝试了以下方法:

location_of_sep= [6, 15] #location of separator for the example given above
for j in location_of_sep:
    result.append(text[0:j])

这不起作用,因为它不获取两个分隔符之间的文本。我可能想得太多了。任何帮助都将不胜感激


Tags: of字符串textin列表for参数on
1条回答
网友
1楼 · 发布于 2024-07-05 14:26:19

使用^{}如何:

>>> import re
>>> re.split("[!,]", "Hooray! Finally, we're done.")
['Hooray', ' Finally', " we're done."]

如果不想使用正则表达式:

使用^{},您可以配对。你知道吗

>>> text = "Hooray! Finally, we're done."
>>> location_of_sep = [6, 15]

>>> zip([-1] + location_of_sep, location_of_sep + [None])
[(-1, 6), (6, 15), (15, None)]

>>> [(i+1,j) for i, j in zip([-1] + location_of_sep, location_of_sep + [None])]
[(0, 6), (7, 15), (16, None)]

>>> [text[i+1:j] for i, j in zip([-1] + location_of_sep, location_of_sep + [None])]
['Hooray', ' Finally', " we're done."]

相关问题 更多 >