파이썬에서 두 변수의 값 교환하기
프로그래밍을 하다 보면 두 변수에 저장된 값을 서로 맞바꿔야 하는 경우가 자주 발생합니다. 파이썬에서는 이 작업을 크게 두 가지 방법으로 수행할 수 있습니다. 하나는 전통적인 임시 변수를 사용하는 방식이고, 다른 하나는 파이썬 고유의 문법인 튜플 언패킹(tuple unpacking)을 활용하는 방식입니다.
방법 1: 임시 변수 사용하기
가장 기본적인 방법은 세 번째 임시 변수를 거쳐 값을 교환하는 것입니다. 먼저 한 변수의 값을 임시 변수에 저장해 두고, 나머지 대입을 차례로 진행하면 됩니다.
>>> x = 10
>>> y = 20
>>> z = x # x의 값을 임시 변수 z에 저장
>>> x = y # y의 값을 x에 대입
>>> y = z # 저장해 둔 원래 x의 값을 y에 대입
>>> x, y
(20, 10)
이 방식은 C나 Java 등 다른 언어에서도 동일하게 적용되는 범용적인 패턴입니다.
방법 2: 임시 변수 없이 튜플 언패킹 사용하기
파이썬에서는 임시 변수 없이 단 한 줄로 두 변수의 값을 교환할 수 있습니다. 바로 튜플 언패킹을 이용하는 방법입니다.
>>> a, b = 5, 7
>>> a, b
(5, 7)
>>> a, b = b, a
>>> a, b
(7, 5)
a, b = b, a 구문은 우변의 튜플 (b, a)를 먼저 평가한 뒤, 그 결과를 좌변의 변수에 순서대로 대입합니다. 따라서 별도의 임시 변수가 필요 없으며, 코드도 훨씬 간결하고 읽기 쉬워집니다.
정리
두 방법 모두 결과는 같지만, 파이썬에서는 a, b = b, a 형태의 튜플 언패킹 방식이 더 간결하고 '파이썬답다(Pythonic)'고 평가받습니다. 다만 알고리즘 학습이나 다른 언어와의 비교를 위해 임시 변수 방식도 함께 익혀두면 좋습니다.