파이썬에서 어떻게 할 것인가?조건부로 변수를 할당하는 Pythonic 방법
if x():
a = 20
b = 10
else:
a = 10
b = 20
a, b = b, a
와
a = 10
b = 20
if x():
[a, b] = [b, a]
파이썬에서 어떻게 할 것인가?조건부로 변수를 할당하는 Pythonic 방법
if x():
a = 20
b = 10
else:
a = 10
b = 20
a, b = b, a
와
a = 10
b = 20
if x():
[a, b] = [b, a]
(a,b) = (20,10) if x() else (10,20)
튜플이 불변하기 때문에 목록 대신 튜플을 사용하면 통역사가 억류 할 수 있으므로이 방법이 더 효율적일 것입니다. – mgilson
@mgilson : 잘 했어! –
스와핑 값은 idiomatic in Python 간주됩니다 나는 아래를 교환 할 수 있지만, 명확 (도 IMO 매우 파이썬)이 아니다.
a, b = 10, 20
if x(): a, b = b, a
하나 좋은 점은이 약이 10
및 20
를 반복하지 않는, 그래서 조금 DRY-er이다.
* 과제 *를 반복하고 있으므로 약간의 씻음입니다. – chepner
또는 [a, b] = [20,10] ... [a, b] = [10,20] 할 수 있습니다. 잘 모르겠다. – Lem0n
사이드 노트로 : 대괄호는 필요 없다 (아마도 원하지 않을 수도있다). 튜플은 목록처럼 쉽게 바꿀 수 있습니다 :'a, b = b, a'. 더 읽기 쉽고 관용적이며 더 빨라질 수 있습니다. – abarnert