Vírgulas para otimizar variáveis ​​Python

Sep 09 2020

Eu tinha uma pergunta sobre como o código python pode ser formatado.

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

Para algo como acima, como funcionam as vírgulas para demonstrar as variáveis? Alguém pode mostrar como esse código ficaria sem o uso de vírgulas entre y0 e y1, ou o (q, a)? Eu sei que deve ser uma forma de otimizar o código.

Respostas

1 YannickFunk Sep 09 2020 at 21:29

As vírgulas nas atribuições são usadas para a criação da tupla no lado direito e desempacotamento no lado esquerdo , por exemplo:

x, y = 1, 3

O que é funcionalmente equivalente a

x = 1
y = 3

Ou, por exemplo , descompactar lista , por exemplo:

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

O que é funcionalmente equivalente a:

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

Portanto, seu código sem "vírgulas" seria:

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

A razão para isso é principalmente, conveniencee não a otimização do código.