Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
如何在Python3中从字符串创建列表?_Python_List_Python 3.x - Fatal编程技术网

如何在Python3中从字符串创建列表?

如何在Python3中从字符串创建列表?,python,list,python-3.x,Python,List,Python 3.x,因此,我试图将一个包含多个分隔符的字符串转换为一个列表,但这取决于分隔符的位置: 例如:(“万岁!终于,我们完成了。”,“!”)根据给定的分隔符转换为:[“万岁”,“终于”,“我们完成了”。] 如您所见,字符串根据分隔符拆分为一个列表。我最近的尝试: for ch in separators: original = ' '.join(original.split(ch)) return(original.split()) 当我这样做时,我得到的结果是: [‘万岁’、‘终于’、‘我们成

因此,我试图将一个包含多个分隔符的字符串转换为一个列表,但这取决于分隔符的位置:

例如:
(“万岁!终于,我们完成了。”,“!”)
根据给定的分隔符转换为:
[“万岁”,“终于”,“我们完成了”。]

如您所见,字符串根据分隔符拆分为一个列表。我最近的尝试:

 for ch in separators:
    original = ' '.join(original.split(ch))
return(original.split())
当我这样做时,我得到的结果是:

[‘万岁’、‘终于’、‘我们成功了’、‘完成了’]

但是我需要将“我们完成了”作为列表中的一个元素,而不是分开

我得到了一个使用字符串累加器的建议,但我不认为它有助于解决这个问题

谢谢

您可以使用适当的表达式:

>>> data=("Hooray! Finally, we're done.", "!,")
>>> re.split("[%s]" % re.escape(data[1]), data[0])
['Hooray', ' Finally', " we're done."]
按元组第二个元素中的每个字符拆分元组的第一个元素

正则表达式由元组的第二个字符串组成,其中所有正则表达式特殊字符都被正确转义。[某些字符]表示方括号内的每个字符都是分隔符。

您可以使用适当的表达式:

>>> data=("Hooray! Finally, we're done.", "!,")
>>> re.split("[%s]" % re.escape(data[1]), data[0])
['Hooray', ' Finally', " we're done."]
按元组第二个元素中的每个字符拆分元组的第一个元素

正则表达式由元组的第二个字符串组成,其中所有正则表达式特殊字符都被正确转义。[某些字符]表示方括号内的每个字符都是分隔符。

您可以使用适当的表达式:

>>> data=("Hooray! Finally, we're done.", "!,")
>>> re.split("[%s]" % re.escape(data[1]), data[0])
['Hooray', ' Finally', " we're done."]
按元组第二个元素中的每个字符拆分元组的第一个元素

正则表达式由元组的第二个字符串组成,其中所有正则表达式特殊字符都被正确转义。[某些字符]表示方括号内的每个字符都是分隔符。

您可以使用适当的表达式:

>>> data=("Hooray! Finally, we're done.", "!,")
>>> re.split("[%s]" % re.escape(data[1]), data[0])
['Hooray', ' Finally', " we're done."]
按元组第二个元素中的每个字符拆分元组的第一个元素

正则表达式由元组的第二个字符串组成,其中所有正则表达式特殊字符都被正确转义。[某些字符]意味着方括号内的每个字符都是分隔符。

只需使用以下命令执行此操作:


编辑: 如果没有正则表达式,则需要自定义函数,例如:

def multisplit(s, delims):
    pos = 0
    for i, c in enumerate(s):
        if c in delims:
            yield s[pos:i]
            pos = i + 1
    yield list(s[pos:])
然后按如下方式使用:

>>> original = "Hooray! Finally, we're done."
>>> multisplit(original, '!,')
['Hooray', ' Finally', " we're done."] 
只需使用以下工具执行此操作:


编辑: 如果没有正则表达式,则需要自定义函数,例如:

def multisplit(s, delims):
    pos = 0
    for i, c in enumerate(s):
        if c in delims:
            yield s[pos:i]
            pos = i + 1
    yield list(s[pos:])
然后按如下方式使用:

>>> original = "Hooray! Finally, we're done."
>>> multisplit(original, '!,')
['Hooray', ' Finally', " we're done."] 
只需使用以下工具执行此操作:


编辑: 如果没有正则表达式,则需要自定义函数,例如:

def multisplit(s, delims):
    pos = 0
    for i, c in enumerate(s):
        if c in delims:
            yield s[pos:i]
            pos = i + 1
    yield list(s[pos:])
然后按如下方式使用:

>>> original = "Hooray! Finally, we're done."
>>> multisplit(original, '!,')
['Hooray', ' Finally', " we're done."] 
只需使用以下工具执行此操作:


编辑: 如果没有正则表达式,则需要自定义函数,例如:

def multisplit(s, delims):
    pos = 0
    for i, c in enumerate(s):
        if c in delims:
            yield s[pos:i]
            pos = i + 1
    yield list(s[pos:])
然后按如下方式使用:

>>> original = "Hooray! Finally, we're done."
>>> multisplit(original, '!,')
['Hooray', ' Finally', " we're done."] 

没有正则表达式的简单解决方案可以是:

def split_on_separators(word, separators):
    word_list = [word]
    auxList = []
    for sep in separators:
        for w in word_list:
            auxList.extend(w.split(sep))
        word_list = auxList
        auxList = list()
    return word_list

example = "Hooray! Finally, we're done."
separators = '!,'

split_on_separators(example, separators)

Out[49]: ['Hooray', ' Finally', " we're done."]

没有正则表达式的简单解决方案可以是:

def split_on_separators(word, separators):
    word_list = [word]
    auxList = []
    for sep in separators:
        for w in word_list:
            auxList.extend(w.split(sep))
        word_list = auxList
        auxList = list()
    return word_list

example = "Hooray! Finally, we're done."
separators = '!,'

split_on_separators(example, separators)

Out[49]: ['Hooray', ' Finally', " we're done."]

没有正则表达式的简单解决方案可以是:

def split_on_separators(word, separators):
    word_list = [word]
    auxList = []
    for sep in separators:
        for w in word_list:
            auxList.extend(w.split(sep))
        word_list = auxList
        auxList = list()
    return word_list

example = "Hooray! Finally, we're done."
separators = '!,'

split_on_separators(example, separators)

Out[49]: ['Hooray', ' Finally', " we're done."]

没有正则表达式的简单解决方案可以是:

def split_on_separators(word, separators):
    word_list = [word]
    auxList = []
    for sep in separators:
        for w in word_list:
            auxList.extend(w.split(sep))
        word_list = auxList
        auxList = list()
    return word_list

example = "Hooray! Finally, we're done."
separators = '!,'

split_on_separators(example, separators)

Out[49]: ['Hooray', ' Finally', " we're done."]

更改字符串,使所有分隔符相同,然后在此分隔符上拆分:

def separate(words, separators):
    sep0 = separators[0]
    for sep in separators[1:]:
        words = words.replace(sep, sep0)

    return words.split(sep0)

更改字符串,使所有分隔符相同,然后在此分隔符上拆分:

def separate(words, separators):
    sep0 = separators[0]
    for sep in separators[1:]:
        words = words.replace(sep, sep0)

    return words.split(sep0)

更改字符串,使所有分隔符相同,然后在此分隔符上拆分:

def separate(words, separators):
    sep0 = separators[0]
    for sep in separators[1:]:
        words = words.replace(sep, sep0)

    return words.split(sep0)

更改字符串,使所有分隔符相同,然后在此分隔符上拆分:

def separate(words, separators):
    sep0 = separators[0]
    for sep in separators[1:]:
        words = words.replace(sep, sep0)

    return words.split(sep0)

感谢您的回复,但我认为我不允许使用re.split方法。我们还没有在课堂上学习它,所以我想我只能使用for循环和某种累加器来完成它。@user3394677查看我的答案谢谢你的回答,但我认为我不允许使用re.split方法。我们还没有在课堂上学习它,所以我想我只能使用for循环和某种累加器来完成它。@user3394677查看我的答案谢谢你的回答,但我认为我不允许使用re.split方法。我们还没有在课堂上学习它,所以我想我只能使用for循环和某种累加器来完成它。@user3394677查看我的答案谢谢你的回答,但我认为我不允许使用re.split方法。我们还没有在课堂上学习它,所以我想我只能使用for循环和某种累加器来完成它。@user3394677查看我的答案谢谢你的回答,但我认为我不允许使用re.split方法。我们还没有在课堂上学习过它,所以我想我只能用for循环和某种累加器来完成它。@user3394677参见上面的编辑。如果我对你有用,请接受我的回答。谢谢你的回复,但我认为我不允许使用re.split方法。我们还没有在课堂上学习过它,所以我想我只能用for循环和某种累加器来完成它。@user3394677参见上面的编辑。如果我对你有用,请接受我的回答。谢谢你的回复,但我认为我不允许使用re.split方法。我们还没有在课堂上学习过它,所以我想我只能用for循环和某种累加器来完成它。@user3394677参见上面的编辑。如果我对你有用,请接受我的回答。谢谢你的回复,但我认为我不允许使用re.split方法。我们还没有在课堂上学习过它,所以我想我只能用for循环和某种累加器来完成它。@user3394677参见上面的编辑。如果我对你有用,请接受我的回答。