Comment transformer une Liste en String Python ?

Article publié le vendredi 10 février 2023 et mis à jour le mercredi 3 avril 2024.

Comment manipuler une Liste de Strings en Python ?

En Python, on peut créer une liste de strings en les mettant ces chaînes de caractères entre crochets et en les séparant par des virgules.

💡 Vous voulez en apprendre plus sur les listes ? Alors vous aimerez sûrement mon article complet sur la fonction native list() en Python

Par exemple, voici une liste de strings :

site = ['comment', 'coder', '.com']

On peut effectuer plusieurs types d’opérations avec cette liste de mots.

Voyons ensemble les manières les plus utiles pour manipuler les listes de strings en Python.

Les listes de chaînes de caractères en Python

En Python, un objet list est un type de variable qui permet de facilement stocker, puis lire, modifier et supprimer des éléments.

Il est fréquent d’avoir plusieurs strings dans une liste quand on code en Python.

C’est donc important de savoir comment les utiliser et c’est ce que nous allons voir dans cet article !

Comment déclarer une liste de strings en Python ?

Il y a deux manières de déclarer une liste de strings en Python. La manière implicite avec des crochets en déclarant directement les strings ou bien la manière plus explicite et orientée objet list() et la méthode de liste .append() pour rajouter les chaînes de caractère.

Option 1 (la plus utilisée) :

ma_liste = ['comment', 'coder', '.com']

Option 2 (explicite mais plus longue):

ma_liste = list()

ma_liste.append('comment')
ma_liste.append('coder')
ma_liste.append('.com')

Comment ajouter une string à une liste Python ?

La méthode append sert à ajouter une string à une liste en Python. On peut aussi utiliser l’opérateur d’addition + sur une ou plusieurs liste(s) de chaînes de caractères. Une dernière option est d’utiliser les compréhensions de listes.

Exemple avec la méthode append :

ma_liste = []

ma_liste.append('comment')
ma_liste.append('coder')
ma_liste.append('.com')

Exemple avec l’opérateur d’addition :

ma_liste = ['comment'] + ['coder'] + ['.com']

Exemple avec les compréhensions de listes :

ma_liste = [mot for mot in mots]

💡 Vous voulez en apprendre plus sur cette syntaxe pour construire des listes en Python ? Alors mon article Comment utiliser les listes en compréhension ? vous intéressera sûrement !

Comment afficher une liste de strings en Python ?

Pour afficher le contenu d’une liste de strings en Python, on utilise la fonction print().

Exemple :

site = ['comment', 'coder', '.com']

print(site)  # ['comment', 'coder', '.com']

Pour afficher chaque mot individuellement sur une nouvelle ligne, on peut utiliser une boucle for :

site = ['comment', 'coder', '.com']

for mot in site:
  print(mot)

Ce qui donne :

comment
coder
.com

🔁 Vous voulez en apprendre plus sur les boucles for ? Alors mon article sur les boucles for en Python vous intéressera sûrement.

Comment trier une liste de strings en Python ?

On utilise la fonction native sorted pour facilement trier une liste de strings en Python.

sorted prend 3 arguments :

  • un itérable (ici notre liste de strings)
  • une clé key (optionnelle) : une fonction de tri
  • un flag reverse (optionnel) : une valeur booléenne (True ou False) pour inverser le tri de notre liste ou pas

Trier une liste de string en Python alphabétiquement

La manière la plus simple pour trier une liste alphabétiquement est d’utiliser la fonction sorted avec une liste passée en paramètre.

ma_liste = ['c', 'a', 'b']

sorted(ma_liste)

Ce qui donne :

['a', 'b', 'c']

Trier une liste de string en Python avec reverse

Pour trier une liste de string dans le sens inverse, on utilise le flag reverse auquel on passe une valeur booléenne “truthy” (comme True).

ma_liste = ['c', 'a', 'b']

sorted(ma_liste, reverse=True)

Ce qui donne :

['c', 'b', 'a']

Trier une liste de string en Python en fonction de la taille

On peut aussi utiliser une fonction pour trier une liste de strings comme on veut.

Ici on utilise la fonction built-in len pour trier en fonction de la taille mais on aurait pu créer notre propre fonction python (qui prend 1 seule variable en paramètre).

ma_liste = ['tres_long', 'long', 'petite', 'moyenne']

sorted(ma_liste, key=len)

Ce qui donne :

['long', 'petite', 'moyenne', 'tres_long']

Comment transformer une liste en string en Python ?

Pour convertir une liste en une chaîne de caractères (string), on utilise la méthode string join sur une chaîne de caractères vide et à laquelle on passe notre liste en paramètre.

Par exemple, on peut combiner une liste de strings en une seule string avec :

liste_site = ['comment', 'coder', '.com']

site = ''.join(liste_site)

print(site)

Ce qui donne :

'commentcoder.com'

On aurait pu utiliser join() sur n’importe quelle string pour joindre notre liste en mode avec un caractère en particulier.

Par exemple :

'@'.join(['thomas', 'commentcoder.com'])

Donne sur la sortie standard :

'thomas@commentcoder.com'

Comment filter une liste en string en Python ?

Pour filter une liste de strings en Python on utilise la fonction native filter à laquelle on passe une fonction.

Par exemple, si on veut garder uniquement les mots qui ne contiennent pas de ., on aurait :

site = ['comment', 'coder', '.com']

def ne_contient_pas_point(s):
  return not '.' in s

site_filtre = filter(ne_contient_pas_point, site)

print(list(site_filtre))  # on utilise list() car filter renvoie un objet `filter` pas lisible par les humains

Ce qui donne :

['comment', 'coder']

On peut aussi utiliser un fonction lambda pour rendre le code plus lisible :

site = ['comment', 'coder', '.com']

site_filtre = filter(lambda s: not '.' in s, site)

print(list(site_filtre))

💡 Vous voulez en apprendre plus sur le filtrage ou l’expression lambda en Python ? Je vous recommande la lecture de mon article sur la fonction filter et celui sur les fonctions avec lambda.

Comment convertir une liste de strings en une liste de nombres ?

Pour convertir une liste de string en une liste de nombres en Python, on peut, par exemple, utiliser une compréhension de liste.

strings_de_nombres = ['1', '2', '3', '4', '5']

nombres = [int(nombre) for nombre in strings_de_nombres]

print(nombres)

Ce qui donne :

[1, 2, 3, 4, 5]
Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.