C급 개발자와 함께하는 파이썬
8.3 튜플
튜플이란 여러개의 객체를 모아서 담는데 사용하는 자료형 입니다. 튜플은 리스트와 비슷해 보이지만, 리스트 클래스에서 제공하는 여러가지 기능이 없습니다.
튜플의 가장큰 특징은 “변경할수 없는 리스트형”이라는 것입니다. 튜플은 어떤 경우에 사용할까요? 튜플형은 “서로다른 종류의 데이터형으로 만들어진 항목들을 변수에 바로쓰는 언패킹 또는 색인 용도로 사용하고 있습니다.
튜플은 리스트와 같은 방식으로 개개의 항목을 쉼표(,)로 구분하지만 리스트형에서 사용하는 대괄호가 아니라 소괄호(())로 묶거나 아예 괄호를 사용하지 않는 방법으로 선언합니다. 하지만 어떤 방식으로 만들어지든 출력결과는 소괄호 기호로 감싸져서 출력됩니다.
예제를 통해 알아보도록 하겠습니다.
코드를 확인해보도록 하겠습니다.
it = “Apple”, 1976, “Microsoft”, 1975, “google”, 1998
위 코드는 별도의 괄호를 사용하지 않고 튜플형 변수를 생성하였습니다.
print( it )
튜플형 it를 출력하면 선언에는 없던 “(“, “)”로 둘러쌓여있는것을 확인할수 있습니다. 튜플형은 별도의 괄호를 지정하지 않아도 출력시에는 출력된다는것을 확인하였습니다.
print( it[1] )
튜플형에서 인덱스 1번째의 값을 가져와서 출력하는것을 확인할 수 있습니다. 출력은 1976이 출력되었네요.
print( it[:2] )
위의 표기는 좌에서 두번째까지 값을 출력합니다. “Apple”, 1976이 출력되었습니다.
print( it[-2:] )
위의 표기는 우에서 좌로 두번째까지 값을 출력하는 것입니다. “Google”, 1998이 출력되었습니다.
it[1] = 1974
이번에는 튜플값을 변경하려고 it[1]에 연도를 수정하려고 합니다. 그런데 아래 메시지와 같이 “TypeError: ‘tuple’ object does not support item assignment” 에러 메시지가 발생하고 있습니다. 튜플형은 항목에 할당을 지원하지 않습니다. 라고 하네요. 네. 튜플형은 앞에서 언급한바와 같이 변경할수 없습니다.
8.3.1 빈튜플 생성하기
개발을 하다보면 빈튜플이나 한개짜리 튜플을 생성해야하는경우가 생기것입니다. 이러한경우 어떻게
생성하는지 알아보도록 하겠습니다.
코드를 분석해 보겠습니다.
empty1 = ()
print( type( empty1 ) )
괄호만으로 튜플을 생성하고 타입을 출력해 보았습니다. 튜플타입으로 출력되어서 나오는 것을 확인할수 있습니다.
empty2 = tuple()
print( type( empty2 ) )
두번째는 tuple()함수를 이용하여 빈 튜플을 생성하였습니다. 타입을 출력해보면 위와 같이 튜플 타일으로 출력되어 나오는것을 확인할수 있습니다.
singletu1 = “single”,
print( type( singletu1 ) )
하나의 항목을 가지는 튜플을 생성하는 방법입니다. 한개의 값을 설정하고 뒤에 “,”를 넣어줘서 한개의 튜플을 생성하였습니다.
singletu2 = (“single”, )
print( type( singletu2 ) )
위와 같은 방식으로 하나의 항목을 가지는 튜플을 생성하는 방법입니다. “(“, “)”를 이용해서 튜플을 생성하면서 마찬가지로 뒤쪽에 “,”를 넣어주었습니다. 타입을 출력해보니 튜플타입으로 출력되는것을 확인할수 있습니다.
singletu3 = (“single”)
print( type( singletu3 ) )
하나의 튜플을 선언하듯이 “(“, “)”를 이용하여 선언하였습니다. 그런데 타입을 출력해보니 튜플이 아니라 문자열로 나왔습니다. 하나의 튜플을 생성할 때는 위의 방법을 꼭 알고 있어야 하나의 튜플을 선언할수 있습니다.