Découpage et jonction de chaînes de caractères

8.5 Découpage et jonction de chaînes de caractères

Objectifs d'apprentissage

À la fin de cette section, vous devriez être capable de :

  • Utiliser la méthode split() pour découper une chaîne de caractères en sous-chaînes.
  • Combiner les objets d'une liste en une chaîne de caractères à l'aide de la méthode join().

split()

En Python, une chaîne de caractères peut être découpée en sous-chaînes à l'aide d'un délimiteur (delimiter). Un délimiteur est également appelé un séparateur. La méthode split(), lorsqu'elle est appliquée à une chaîne de caractères, la découpe en sous-chaînes en utilisant l'argument fourni comme délimiteur. Ex. : "1-2".split('-') renvoie une liste de sous-chaînes ["1", "2"]. Lorsqu'aucun argument n'est fourni à la méthode split(), les caractères d'espacement sont utilisés comme délimiteurs. Ex. : "1\t2\n3 4".split() renvoie ["1", "2", "3", "4"].

Faites le point

split() pour décomposer la chaîne en jetons

Concepts en pratique

Exemples de délimiteurs de chaînes et de la méthode split()

1.
Quelle est la sortie de print("1*2*3*".split('*')) ?
  1. ["1", "*", "2", "*", "3", "*"]
  2. ["1", "2', "3"]
  3. [1, 2, 3]
2.
Quelle est la sortie de print("a year includes 12 months".split()) ?
  1. ["a year includes 12 months"]
  2. ["a", "year", "includes", 12, "months"]
  3. ["a", "year", "includes", "12", "months"]
3.
Quelle est la sortie du code suivant ?
s = """This
is a
test"""

out = s.split()
print(out)
  1. Error
  2. ['This', 'is', 'a', 'test']
  3. >['This', 'is a', 'test']

join()

La méthode join() est l'inverse de la méthode split() : une liste de valeurs de chaînes de caractères est concaténée pour former une chaîne de caractères de sortie. Lors de la jonction d'éléments de chaîne dans la liste, le délimiteur est inséré entre les éléments. Ex. : ','.join(["this", "is", "great"]) renvoie "this,is,great".

Faites le point

join() pour combiner des jetons en une seule chaîne

Concepts en pratique

Application de la méthode join() sur une liste de valeurs de chaînes

4.
Quelle est la sortie du code suivant ?
elements = ['A', 'beautiful', 'day', 'for', 'learning']

print(",".join(elements))
  1. 'A beautiful day for learning'
  2. ['A, beautiful, day, for, learning']
  3. 'A,beautiful,day,for,learning'
5.
Quelle est la longueur de la chaîne "sss".join(["1","2"]) ?
  1. 2
  2. 5
  3. 8
6.
Quelle est la valeur stockée dans la variable out ?
s = ["1", "2"]
out = "".join(s)
  1. 12
  2. "12"
  3. "1 2"

À vous d'essayer

Mots uniques et séparés par des virgules

Écrivez un programme qui accepte en entrée une séquence de mots séparés par des virgules et affiche les mots sur des lignes distinctes. Ex. : Pour la chaîne "happy,smiling,face", la sortie sera :

    happy
    smiling
    face

À vous d'essayer

Commande de déjeuner

Utilisez la méthode join() pour récapituler la commande d'un client dans un restaurant, séparée par des virgules. L'utilisateur saisira chaque aliment sur une ligne distincte. Une fois la commande terminée, l'utilisateur saisira une ligne vide. La sortie dépend du nombre d'articles commandés par l'utilisateur :

  • Si l'utilisateur ne saisit rien, le programme affiche :
    You ordered nothing.
  • Si l'utilisateur saisit un article (ex. : eggs), le programme affiche :
    You ordered eggs.
  • Si l'utilisateur saisit deux articles (ex. : eggs, ham), le programme affiche :
    You ordered eggs and ham.
  • Si l'utilisateur saisit trois articles ou plus (ex. : eggs, ham, toast), le programme affiche :
    You ordered eggs, ham, and toast.

Dans le cas général de trois éléments ou plus, chaque élément doit être séparé par une virgule et un espace. Le mot « and » doit être ajouté avant le dernier élément.