Virgole per ottimizzare le variabili Python

Sep 09 2020

Avevo una domanda su come formattare il codice Python.

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

Per qualcosa di simile sopra, come funzionano le virgole per dimostrare le variabili? Qualcuno può mostrare come apparirebbe questo codice senza l'uso di virgole tra y0 e y1 o (q, a)? So che deve essere una sorta di modo per ottimizzare il codice.

Risposte

1 YannickFunk Sep 09 2020 at 21:29

Le virgole nelle assegnazioni vengono utilizzate per la creazione della tupla sul lato destro e lo spacchettamento sul lato sinistro , ad esempio:

x, y = 1, 3

Che è funzionalmente equivalente a

x = 1
y = 3

O per esempio elenco di decompressione , ad esempio:

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

Che è funzionalmente equivalente a:

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

Quindi il tuo codice senza "virgole" sarebbe:

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

La ragione di ciò è principalmente conveniencee non l'ottimizzazione del codice.