더북(TheBook)

12.2 튜플 할당

두 변수의 값을 교환하는 건 종종 유용하다. 일반적인 할당문으로는 임시 변수를 사용해야 한다. 예를 들어 ab를 교환하려면 다음과 같은 코드를 사용한다.

>>> temp = a

>>> a = b

>>> b = temp

이런 방법은 번거롭다. 튜플 할당(tuple assignment)은 좀 더 우아하다.

>>> a, b = b, a

=의 왼쪽은 튜플 변수이고, 오른쪽은 튜플 표현식이다. 각각의 값은 그에 해당하는 변수에 할당된다. 오른쪽의 모든 표현식이 평가된 이후에 할당이 시작된다.

왼쪽에 있는 변수의 개수와 오른쪽에 있는 값의 개수는 같아야 한다.

>>> a, b = 1, 2, 3

ValueError: too many values to unpack

일반적으로 오른쪽에는 문자열, 리스트, 튜플 등 어떤 종류의 시퀀스라도 사용할 수 있다. 예를 들어 이메일 주소를 사용자 이름과 도메인으로 나누려면 다음과 같이 작성할 수 있다.

>>> addr = 'monty@python.org'

>>> uname, domain = addr.split('@')

split의 반환 값은 원소가 두 개인 리스트가 된다. 첫 번째 원소는 uname에 할당되고, 두 번째 원소는 domain에 할당된다.

>>> uname

'monty'

>>> domain

'python.org'

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.