1 분 소요

튜플 (tuple)

tuple도 list처럼 요소들의 배열이다. 그러나 tuple은 immutable하다. 즉, tuple 내의 요소들을 추가, 삭제, 수정할 수 없다. 수학에 비유하면 상수와도 같다.

tuple 생성하는 법

소괄호 ()을 이용하여 빈 tuple을 생성할 수 있다.

empty_tuple = ()
print(empty_tuple)
()

또는 콤마(,)를 이용하면 소괄호를 생략하고도 tuple을 정의할 수 있다.

some_tuple = 'hamburger',
print(some_tuple)
print(type(some_tuple))
('hamburger',)
<class 'tuple'>

이 때 요소 하나만 넣을 경우 위 예제처럼 요소 뒤에 콤마는 필수로 넣어야 한다. 요소가 두 개 이상일 경우, 맨 마지막 요소 뒤에 콤마를 넣지 않는다. (물론 요소 사이에는 list처럼 콤마를 넣는다)

튜플 언패킹 (tuple unpacking)

tuple 내 여러 요소들을 일대일대응으로 여러 변수에 한꺼번에 대입할 수 있다. 이를 tuple unpacking이라 한다.

foods_tuple = 'hamburger', 'banana', 'salad'
a, b, c = foods_tuple
print(a, b, c)
hamburger banana salad

이 때 tuple의 길이와 변수들의 수가 맞지 않으면 에러가 발생한다.

list도 언패킹이 가능하다.

tuple을 이용하면 제3의 변수 없이도 두 변수의 값을 서로 교환할 수 있다.

buyer = '2천원'
seller = '콜라 500ml'
temp = buyer
buyer = seller
seller = temp

print(buyer)
print(seller)
콜라 500ml
2천원

위 예제에서처럼, 두 변수 간 값을 서로 바꾸려면 중간에 temp처럼 또 다른 변수가 하나 더 필요하다. 그러나 tuple을 이용하면 제 3의 변수는 필요 없어진다.

buyer = '2천원'
seller = '콜라 500ml'
buyer, seller = seller, buyer

print(buyer)
print(seller)
콜라 500ml
2천원

tuple() 함수를 이용하면 다른 객체를 tuple로 만들 수 있다.


tuple and list

list 대비 tuple의 장점

  • 더 적은 공간 사용 (메모리 공간을 말하는 것 같다)
  • 실수로 tuple 내 요소들을 수정, 삭제, 추가할 일이 없다.
  • tuple을 dictionary의 key로 쓸 수 있다.
  • 함수의 인수들은 tuple로 받는다. (”함수” 장 참고)

Reference

[1] Bill Lubannovic, “Introducing Python”, (O’REILLY, 2015)

This content is licensed under CC BY-NC 4.0

댓글남기기