Blog • code, python

L’opérateur Walrus := en Python

Comment utiliser walrus (morse) en Python ? L'opérateur d'affectation walrus permet d'assigner une variable tout en évaluant la valeur.

Publié le 11 février 2026 3 min de lecture

L'opérateur d'affectation walrus, également appelé morse en français, permet d'assigner une variable tout en évaluant la valeur.

Explications vidéo pour comprendre l’opérateur walrus en Python en moins d'une minute :

Que veut dire := en Python?

Les symboles := représentent l’opérateur walrus en Python. Il tient son nom de sa ressemblance avec la tête d'un morse avec ses defenses. On l'utilise pour assigner une valeur à une variable tout en renvoyant l'evaluation de l'operation.

Syntaxe :

variable := objet

Que fait l’opérateur walrus := en Python ?

L'evaluation d'une assignation de variable avec l’opérateur walrus (variable := objet) renvoie l'objet.

Donc (ma_variable := 12) :

  • assigne 12 à la variable ma_variable
  • renvoie 12

Comment utiliser walrus dans une fonction ?

On peut utiliser l’opérateur walrus dans une fonction comme la fonction print et lui assigner une valeur.

print(ma_variable := 42)
print(ma_variable / 2)

Affichera :

42
21

Comment utiliser walrus dans une boucle ?

Disons que nous voulons récupérer les carrés des nombres dans une liste uniquement si ces carrés sont inférieurs à 15.

nombres = [1, 2, 3, 4, 5]
carres = []

for nombre in nombres:
    c = nombre * nombre
    if c < 15:
        carres.append(c)

print(carres)

On peut effectuer l'assignation du carré à c directement dans la condition du "if" en utilisant l'opérateur walrus et en plaçant son assignation entre parenthèses.

nombres = [1, 2, 3, 4, 5]
carres = []

for nombre in nombres:
    if (c := nombre * nombre) < 15:
        carres.append(c)

print(carres)

Et notre programme fonctionne comme avant.

Ces deux programmes renvoient une liste avec les carres des nombres qui sont inférieurs à 15, donc : [1, 4, 9].

Comment utiliser walrus dans une liste en comprehension ?

Donc, on utilise surtout cet opérateur pour améliorer la lisibilité du code, mais aussi pour éviter des évaluations coûteuses qui se répètent.

Prenons cette même boucle mais sous forme de liste en compréhension.

nombres = [1, 2, 3, 4, 5]
l = [n * n for n in nombres if n * n < 15]
print(l)

On a toujours [1, 4, 9].

Dans ce code, on a calculé deux fois le carré. Sur un petit programme comme celui-ci, ce n'est pas un problème, mais on double le temps de calcul, ce qui n'est pas bon du point de vue des performances.

Donc, on peut plutôt utiliser l'opérateur walrus pour calculer le carré une seule fois en assignant sa valeur à la variable "c".

nombres = [1, 2, 3, 4, 5]
l = [c for n in nombres if (c := n * n) < 15]
print(l)

Et encore une fois, on a [1, 4, 9].

En lien avec cet article

Cours Python débutant

Démarrez en Python à partir de zéro : variables, conditions, boucles, fonctions et structures de données. Chaque notion est suivie d'exercices corrigés automatiquement.

Bases du langageExercices corrigés4 projets progressifs
Voir le cours
Thomas Collart

Thomas Collart, développeur et formateur depuis plus de 20 ans. J'ai formé 3 700 étudiants à travers mes formations en ligne, cumule plus de 2 700 000 vues et 56 700 abonnés sur YouTube, TikTok et Instagram.