-
La méthode
splitpermet de découper une chaîne en une liste de sous-chaînes, en effectuant les coupures sur des caractères bien précis (par défaut les espaces)
123456789101112131415>>> t = "être ou ne pas être, là est la question">>> t.split() # on découpe la chaîne sur les espaces (comportement par défaut)['être', 'ou', 'ne', 'pas', 'être,', 'là', 'est', 'la', 'question']>>> t.split(sep=',') # ici on découpe sur les virgules (il n'y en a qu'une)['être ou ne pas être', ' là est la question']>>> t.split('être') # on peut choisir une chaîne comme séparateur['', ' ou ne pas ', ', là est la question']>>> t.split(maxsplit=4) # ici, on autorise au plus quatre coupures['être', 'ou', 'ne', 'pas', 'être, là est la question']>>> t=" plein de vide dans cette chaîne ">>> t.split() # dans un split.() tous les espaces sont supprimés.['plein', 'de', 'vide', 'dans', 'cette', 'chaîne']>>> t="--plein-de--tirets---dans-cette--chaîne--">>> t.split('-') # ça n'est pas pareil si on splite sur un autre caractère['', '', 'plein', 'de', '', 'tirets', '', '', 'dans', 'cette', '', 'chaîne', '', ''] -
La méthode
joinest l’inverse de la méthodesplit. L’expression sep.join(iterable)regroupe les chaînes éléments de l’objet iterable (une liste de chaînes, par exemple), en utilisant la chaîne sep comme séparateur.
123456>>> ''.join(['abc','def','ghi']) # joint les chaînes de la liste, avec un séparateur vide'abcdefghi'>>> '*'.join(['abc','def','ghi']) # idem mais en séparant par *'abc*def*ghi'>>> '-?-'.join(['abc','def','ghi']) # on peut séparer par une chaîne quelconque'abc-?-def-?-ghi'
La méthodejoindoit être considérée comme une propriété de la chaîne qui est spécifiée comme séparateur.
La méthodejoinest économique en mémoire et doit être préférée à une boucle mettant les différentes chaînes bout à bout (complexité linéaire plutôt que quadratique). -
La méthode
formatpermet de formater une chaîne (pour l’afficher, le plus souvent), en utisant un canevas contenant des champs (qui servent à spécifier le format) et des arguments pour renseigner ces champs.
La syntaxe est canevas.format(arguments). Les champs de formatage (dans la chaîne canevas) sont délimités par des accolades, et chaque champ est renseigné par l’argument qui lui correspond. Il y a énormément de variantes !
On trouvera une description détaillée ici :http://docs.python.org/3.3/library/string.html#formatstrings
On trouvera des exemples ici :http://docs.python.org/3.3/library/string.html#formatexamples
Voici quelques exemples simples :
123456789101112131415>>> canevas = 'Nom: {}, prénom: {}, date de naissance: {}'>>> canevas.format('William','Shakespeare',1613)'Nom: William, prénom: Shakespeare, date de naissance: 1613'>>> canevas = 'Nom: {n}, prénom: {p}, date de naissance: {d}'>>> canevas.format(d=1613,p='William',n='Shakespeare')'Nom: Shakespeare, prénom: William, date de naissance: 1613'>>> canevas = 'Le nombre décimal {0:d} s'écrit {0:b} en binaire et {0:x} en hexadécimal'>>> canevas.format(2013)"Le nombre décimal 2013 s'écrit 11111011101 en binaire et 7dd en hexadécimal">>> canevas = 'On sait bien que {0}+{1}+{2} = {1}+{0}+{2} = {0}+{2}+{1}'>>> canevas.format(15,87,23)'On sait bien que 15+87+23 = 87+15+23 = 15+23+87'>>> canevas = '{0}/{1} vaut {2:.2f} (2 décimales) et {2:.7f} (7 décimales)'>>> x, y = 20132013, 71; canevas.format(x,y,x/y)'20132013/71 vaut 283549.48 (2 décimales) et 283549.4788732 (7 décimales)'