[Python-basic][Data type] 튜플 (tuple)
튜플 (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
댓글남기기