Joindre une liste en Python
La méthode join en Python signifie concaténer une liste de chaînes avec un délimiteur spécifié pour former une chaîne. Parfois, c'est utile lorsque vous devez convertir une liste en chaîne. Par exemple, convertir une liste d'alphabets en une chaîne séparée par des virgules pour la sauvegarder dans un fichier.
Joindre une liste en Python
Nous pouvons utiliser la fonction join() de la chaîne python pour joindre une liste de chaînes. Cette fonction prend itérable comme argument et une liste est un itérable, donc nous pouvons l'utiliser avec une liste. De plus, la liste doit contenir des chaînes ; si vous essayez de joindre une liste d'entiers, vous obtiendrez un message d'erreur comme TypeError: sequence item 0: expected str instance, int found. Voyons un court exemple de jonction de liste en python pour créer une chaîne.
vowels = ["a", "e", "i", "o", "u"]
vowelsCSV = ",".join(vowels)
print("Vowels are = ", vowelsCSV)
Lorsque nous exécutons le programme ci-dessus, il produira la sortie suivante.
Vowels are = a,e,i,o,u
Python joint deux chaînes
Nous pouvons utiliser la fonction join() pour joindre deux chaînes de caractères aussi.
message = "Hello ".join("World")
print(message) #prints 'Hello World'
Pourquoi la fonction join() est-elle dans String et non dans List ?
Une question se pose chez de nombreux développeurs Python : pourquoi la fonction join() fait-elle partie de String et non de liste ? La syntaxe ci-dessous ne serait-elle pas plus facile à mémoriser et à utiliser ?
vowelsCSV = vowels.join(",")
Il existe une question populaire sur StackOverflow à ce sujet, ici je liste les points les plus importants des discussions qui ont tout leur sens pour moi.
La principale raison est que la fonction join() peut être utilisée avec n'importe quel itérable et que le résultat est toujours une chaîne de caractères, donc il est logique d'avoir cette fonction dans l'API des chaînes plutôt que de l'avoir dans toutes les classes itérables.
Rejoindre une liste de plusieurs types de données
Examinons un programme où nous essaierons de rejoindre des éléments de liste ayant plusieurs types de données.
names = ['Java', 'Python', 1]
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
Voyons le résultat de ce programme :
C'était juste une démonstration qu'une liste contenant plusieurs types de données ne peut pas être combinée en une seule chaîne avec la fonction join(). La liste doit contenir uniquement des valeurs de chaîne.
Diviser la chaîne en utilisant la fonction join
Nous pouvons utiliser la fonction join() pour diviser une chaîne avec un délimiteur spécifié également.
names = 'Python'
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
Cela montre que lorsque une chaîne est passée en argument à la fonction join(), elle se divise par caractère et avec le délimiteur spécifié.
Utiliser la fonction split()
En plus de la séparation avec la fonction join(), la fonction split() peut également être utilisée pour diviser une chaîne, qui fonctionne presque de la même manière que la fonction join(). Regardons un extrait de code :
names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
split = single_str.split(delimiter)
print('List: {0}'.format(split))
Voyons le résultat de ce programme :
Nous avons utilisé le même délimiteur pour diviser à nouveau la chaîne et revenir à la liste originale.
Diviser seulement n fois
La fonction split() que nous avons démontrée dans l'exemple précédent prend également un deuxième argument optionnel qui signifie le nombre de fois que l'opération de séparation doit être effectuée. Voici un programme exemple pour démontrer son utilisation :
names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
split = single_str.split(delimiter, 1)
print('List: {0}'.format(split))
Voyons le résultat de ce programme :
Cette fois, l'opération de séparation a été effectuée une seule fois comme nous l'avons fourni dans le paramètre de la fonction split(). C'est tout pour joindre une liste afin de créer une chaîne en python et utiliser la fonction split() pour obtenir la liste originale à nouveau.




