Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建要在分隔符上拆分的函数_Python_String_Python 3.x - Fatal编程技术网

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

Python 创建要在分隔符上拆分的函数,python,string,python-3.x,Python,String,Python 3.x,此函数接受两个参数text和separator,这两个参数都是字符串,并从text返回一个非空、非空字符串列表,通过在任何分隔符上拆分文本来确定。 分隔符是一组单字符分隔符 以下是一个例子: def split_on_separators(text, separators) >>>split_on_separators("Hooray! Finally, we're done.", "!,") ['Hooray', ' Finally', " we're done."] 这就

此函数接受两个参数text和separator,这两个参数都是字符串,并从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])
这不起作用,因为它无法获取两个分隔符之间的文本。我可能想得太多了。如有任何帮助,我们将不胜感激

请使用:


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

使用,你可以配对

>>> 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."]
如何使用:


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

使用,你可以配对

>>> 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."]

+1用于建议重新拆分并回答引导问题+1用于建议重新拆分并回答引导问题