Les compréhensions de liste en Python

Les compréhensions de liste, qu’est ce que c’est ?

Il s’agit d’une fonctionnalité du language python permettant de faire de nombreuses choses comme :

  • Créer une liste de manière concise

  • Filtrer les éléments d’une liste

  • Modifier les éléments d’une liste

Structure

La structure d’une compréhension de liste est assez simple. On commence par écrire une expression, suivie d’une clause for et on termine par une ou plusieurs clauses if.

Exemples

Pour cet exemple je vais utiliser le tableau suivant:

characters = ['Harry','Ron',False,'Hermione']

Je vais ici utiliser une compréhension de liste pour deux choses:

  • Supprimer l’élément False de la liste

  • Ajouter le mot Bonjour devant chaque nom

Si j’écrivais cela dans un autre language, j’écrirais probablement quelque chose comme ceci:

sorted_names = []

for character in characters:
    if(character):
        sorted_names.append('Bonjour %s' % character)

print(sorted_names)

Voici maintenant une compréhension de liste permettant d’arriver exactement au même résultat:

sorted_names = ['Bonjour %s' % character for character in characters if character]

print(sorted_names)

Le code obtenu est beaucoup plus concis et plus facile à lire. Du moins, c’est le cas lorsqu’on sépare les différentes parties.

Dans l’exemple précédent, la compréhension de liste commence par l’expression permettant d’ajouter le mot Bonjour devant chaque nom:

'Bonjour %s' % character

On va ensuite indique les éléments sur lesquels on va travailler (comme dans la boucle for présente dans l’exemple plus long):

for character in characters

On termine par la partie permettant de filter les éléments de la liste. Dans ce cas, on ne va exécuter la première expression que si character est différent de False:

if character

Une fois ces éléments assemblés et mis entre crochets, nous obtenons la compréhension de liste vue précédemment.

Il faut également noter qu’une compréhension de liste ne modifie pas la liste originale, c’est la raison pour laquelle je l’assigne à une nouvelle variable dans mon exemple.

Conclusion

Comme le montre ce court exemple, la compréhension de liste est un élément puissant du language Python.

Attention toutefois à ne pas l’utiliser pour tout et rien ! Certaines méthodes comme map permettent également de modifier le contenu d’une liste python et peuvent, dans certains cas, être plus adapté qu’une compréhension de liste.

J’espère que cet article vous a plu ! N’hésitez pas à le partager sur les réseaux sociaux et à nous suivre sur ces derniers !