Python 변수를 최적화하는 쉼표

Sep 09 2020

파이썬 코드를 포맷하는 방법에 대한 질문이있었습니다.

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

위와 같은 경우 변수를 보여주는 쉼표는 어떻게 작동합니까? 누군가 y0과 y1 또는 (q, a) 사이에 쉼표를 사용하지 않고이 코드가 어떻게 보이는지 보여줄 수 있습니까? 나는 그것이 코드를 최적화하는 일종의 방법이라는 것을 알고 있습니다.

답변

1 YannickFunk Sep 09 2020 at 21:29

할당의 쉼표 는 오른쪽에 튜플을 생성하고 왼쪽에 압축을 풀 때 사용됩니다. 예 :

x, y = 1, 3

기능적으로는

x = 1
y = 3

또는 예를 들어 목록 풀기 , 예 :

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

기능적으로 다음과 같습니다.

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

따라서 "쉼표"가없는 코드는 다음과 같습니다.

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

그 이유는 대부분 convenience코드 최적화가 아닙니다.