Virgules pour optimiser les variables Python

Sep 09 2020

J'avais une question sur la façon dont le code python peut être formaté.

 (q, a), b = divmod(b, a), a
        y0, y1 = y1, y0 - q * y1

Pour quelque chose comme ci-dessus, comment fonctionnent les virgules pour illustrer les variables? Quelqu'un peut-il montrer à quoi ressemblerait ce code sans l'utilisation de virgules entre y0 et y1, ou le (q, a)? Je sais que cela doit être une sorte de moyen d'optimiser le code.

Réponses

1 YannickFunk Sep 09 2020 at 21:29

Les virgules aux attributions sont utilisées pour la création de tuple sur le côté droit et le déballage sur le côté gauche , par exemple:

x, y = 1, 3

Ce qui est fonctionnellement équivalent à

x = 1
y = 3

Ou par exemple le déballage de la liste , par exemple:

example_list = [1, 4, 5]
x, y, z = example_list

Ce qui est fonctionnellement équivalent à:

x = example_list[0]
y = example_list[1]
z = example_list[2]

Donc, votre code sans "virgules" serait:

(q, a) = divmod(b, a) # unpacking
b = a
old_y0 = y0
y0 = y1
y1 = old_y0 - q * y1

La raison en est principalement convenienceet non l'optimisation du code.