python 2.7.8 delimiter.how del del a string of string

时间:2014-10-29 13:25:13

标签: python-2.7 delimiter

def split(string,x):
    if string == "":
        return ""
    if string[0] == x :
        return split(string[1:],x)
    return string[0]+[split(string[1:],x)]

我想给这个func一个像“ballooolam”和“l”这样的字符串,我希望这个函数给我[“ba”,“ooo”,“am”] 3天我在想它

1 个答案:

答案 0 :(得分:0)

在python中分割字符的正确方法是使用split内置函数。它将比你在python中本地实现的任何东西更多更快,因为它是一个已编译的C扩展,就像此时所有内置的一样:

lst =  "ballooolam".split("l")

但是,正如本question中所讨论的,这可能不会完全做您期望的事情。当有长度为零的标记时,split会在列表中留下空字符串; I.E.如果分隔符位于字符串中的第一个/最后一个位置,或者两个分隔符彼此相邻。这样做word = 'l'.join(lst)将返回原始值;如果没有空字符串,您将获得'balooolam'而不是'ballooolam'。如果要删除这些空字符串,可以使用列表解析轻松完成:

def splitter(string, x):
    return [token for token in string.split(x) if token]

if token将拒绝任何字符串,这些字符串是空字符串。如果您还希望从最终列表中排除仅限空格的字符串,则可以通过一些调整来实现:

def splitter(string, x):
    return [token for token in string.split(x) if token.strip()]

strip()从字符串中删除任何前导/尾随空格。在只有空格的字符串的情况下,这将导致一个空字符串,这将是假的。