String split avec délimiteur par défaut vs défini par l'utilisateur délimiteur

J'ai essayé un exemple simple avec string split, mais obtenir un comportement inattendu. Voici un exemple de code:

def split_string(source,splitlist):
    for delim in splitlist:
        source = source.replace(delim, ' ')
    return source.split(' ')

out = split_string("This is a test-of the,string separation-code!", " ,!-")
print out
>>> ['This', 'is', 'a', 'test', 'of', 'the', 'string', 'separation', 'code', '']

Comme vous pouvez le voir, j'ai reçu un supplément de chaîne vide à la fin de la liste lorsque j'utilise l'espace comme délimiteur argument pour split() de la fonction. Cependant, si je ne passe pas dans n'importe quel argument pour split() de la fonction, je n'ai pas de chaîne vide à la fin de la liste de sortie.

De ce que j'ai lu en python docs, ils ont dit que l'argument par défaut pour la fonction split() est l'espace. Alors, pourquoi lorsque j'ai choisi de passer dans un ' comme délimiteur, il crée une chaîne vide à la fin de la liste de sortie?

OriginalL'auteur Bent | 2015-05-16