Python Language Diviser une chaîne basée sur un délimiteur en une liste de chaînes


Exemple

str.split(sep=None, maxsplit=-1)

str.split prend une chaîne et retourne une liste de sous-chaînes de la chaîne d'origine. Le comportement diffère selon que l'argument sep est fourni ou omis.

Si sep n'est pas fourni, ou est None , alors le fractionnement a lieu partout où il y a des espaces. Toutefois, les espaces blancs de début et de fin sont ignorés et plusieurs caractères d'espacement consécutifs sont traités de la même manière qu'un seul caractère d'espacement:

>>> "This is a sentence.".split()
['This', 'is', 'a', 'sentence.']

>>> " This is    a sentence.  ".split()
['This', 'is', 'a', 'sentence.']

>>> "            ".split()
[]

Le paramètre sep peut être utilisé pour définir une chaîne de délimiteur. La chaîne d'origine est fractionnée à l'endroit où se trouve la chaîne de délimiteur et le délimiteur lui-même est supprimé. Plusieurs délimiteurs consécutifs ne sont pas traités comme une seule occurrence, mais créent plutôt des chaînes vides.

>>> "This is a sentence.".split(' ')
['This', 'is', 'a', 'sentence.']

>>> "Earth,Stars,Sun,Moon".split(',')
['Earth', 'Stars', 'Sun', 'Moon']

>>> " This is    a sentence.  ".split(' ')
['', 'This', 'is', '', '', '', 'a', 'sentence.', '', '']

>>> "This is a sentence.".split('e')
['This is a s', 'nt', 'nc', '.']

>>> "This is a sentence.".split('en')
['This is a s', 't', 'ce.']

La valeur par défaut consiste à diviser chaque occurrence du délimiteur, mais le paramètre maxsplit limite le nombre de fractionnements. La valeur par défaut de -1 signifie aucune limite:

>>> "This is a sentence.".split('e', maxsplit=0)
['This is a sentence.']

>>> "This is a sentence.".split('e', maxsplit=1)
['This is a s', 'ntence.']

>>> "This is a sentence.".split('e', maxsplit=2)
['This is a s', 'nt', 'nce.']

>>> "This is a sentence.".split('e', maxsplit=-1)
['This is a s', 'nt', 'nc', '.']

str.rsplit(sep=None, maxsplit=-1)

str.rsplit ("split droit") diffère de str.split ("split gauche") lorsque maxsplit est spécifié. Le fractionnement commence à la fin de la chaîne plutôt qu'au début:

>>> "This is a sentence.".rsplit('e', maxsplit=1)
['This is a sentenc', '.']

>>> "This is a sentence.".rsplit('e', maxsplit=2)
['This is a sent', 'nc', '.']

Remarque : Python spécifie le nombre maximal de divisions effectuées, tandis que la plupart des autres langages de programmation spécifient le nombre maximal de sous - chaînes créées. Cela peut créer de la confusion lors du portage ou de la comparaison du code.