Virgules pour optimiser les variables Python
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
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.