안녕하세요 모닝수잔입니다 :) 오늘은 파이썬 자료형 중에서도 "튜플 자료형"에 대해 살펴보겠습니다.

 

 

튜플(Tuple)이란 무엇일까요?  데이터베이스내의 주어진 목록과 관계있는 속성값의 모음이다. 관련 테이블에서 행한 수치 이상으로 혼합된 자료 요소를 의미한다. 

 

한마디로 튜플은 여러 개의 데이터가 그룹화된 일종의 모음(Collection)인 리스트와 비슷합니다. 다만 2가지 차이점을 가지고 있을 뿐이죠.

 

 


튜플의 형식

튜플은 소괄호 ()로 표기한다.


Coffee = ("에스프레소""아메리카노""라떼""카푸치노""카라멜마키아또")

 

첫번째 차이점으로 리스트가 중괄호 []로 표기되었다면 튜플은 소괄호()로 표기됩니다. 지금 Coffee라는 튜플형 변수 안에는 5개의 element가 부여되어 있습니다. print(Coffee)를 해보면 이렇게 아래 화면처럼 5개의 element가 출력되죠?

 

 

※ 튜플의 element가 1개 일 때 주의사항

만약 튜플의 element가 1개라면 반드시 element 뒤에 콤마(,)를 추가해줘야 한답니다. Coffee("에스프레소",) 이렇게요.

 

 

튜플의 특성

튜플은 element의 추가/삭제/수정이 불가능하다.


두번째 차이점은 튜플에 부여된 element는 추가/삭제/수정이 불가능하다는 점입니다. 아예 처음에 부여한 element를 고정값으로 가져간다는 점에서 큰 특색을 가지고 있죠.

 

예시로 한번 첫번째 인덱스 element를 삭제해볼까요? del Coffee[1]을 print해봤더니 "Tuple opbject doesn't support item deletion"이라고 합니다. 즉, 튜플은 아이템 삭제를 지원하지 않는다는 뜻이니 튜플 element는 삭제가 안되는 것이라는 사실을 확인할 수 있죠.

 

 

그/래/도,

 

튜플은 리스트와 비슷하다고 하니 리스트 함수인 remove()를 이용해서 element를 삭제해볼까요?

 

이런, 아래 화면 빨간칸 결과값을 보니 오류가 생깁니다. 앞서 만들어둔 튜플 형식의 변수 Coffee에 Coffee.remove("에스프레소")를 통해 "에스프레소"라는 element를 제거해보려고 했지만 "Tuple object has no attribution 'remove'" = 튜블은 remove 속성을 가지고 있지 않다고 나옵니다.

 

 


튜플의 데이터 조작

인덱싱/슬라이싱/더하기/element 갯수 세기


여기까지만 보면 그냥 리스트를 사용하지 왜 굳이 튜플을 쓸까 이해가 안되실 수도 있습니다. 

 

 

하/지/만,

 

튜플도 튜플 나름대로의 장점이 있답니다. 매우 중요한 데이터 collection이라면 추가/수정/삭제가 되는 것보다 원본을 그대로 간직하는 것이 더 필요하지 않을까요? 그리고 데이터 가공을 사용하면 충분히 튜플 안에 있는 element도 추가/수정/삭제가 가능해집니다.

 

우선, 리스트와 동일하게 튜플도 인덱싱/슬라이싱/더하기/element 갯수 세기가 가능합니다. 아래 화면 빨간칸을 보실게요.

 

 

이런 데이터 조작을 응용해서 튜플 element를 살짝 조정해보겠습니다. 예를 들어, Coffee라는 튜플형 변수안에 "아메리카노"와 "cake"라는 2개의 element만 포함시키고 싶다면 어떻게 할 수 있을까요?

 

 

Coffee를 Coffee[1:2]로 1번째 인덱스부터 2번째 인덱스까지 슬라이싱을 하게 되면 "아메리카노" 만 남게됩니다. 왜냐하면 0번째 "에스프레소" 1번째 "아메리카노" 2번째 "라떼"인데 1번째 - 2번째까지 슬라이싱을 하는데 2번째는 포함하지 않는 것이 Coffee[1:2]이기 때문입니다. 만약 Coffee[0:2] 였다면 결과값은 "에스프레소", "아메리카노" 였겠죠? 마찬가지로 Dessert에서 Dessert[1:2]를 해서 "cake"만 슬라이싱 해줍니다.

 

이제 이 2개의 값을 더하면? "아메리카노"와 "cake"가 됩니다. 이 값을 Coffee에 부여해주면? Coffee는 "아메리카노"와 "cake"라는 2개의 element만 갖게됩니다.

 

 

하/지/만,

 

실제로 마지막 Coffee에 새로운 element 값을 부여해주는 것보다는 새로운 튜플형 변수를 만들어서 사용하는 것이 좋습니다. 튜플의 가장 큰 장점은 element의 추가/수정/삭제가 불가능해서 그대로 보존해준다는 점인데 굳이 새로 element의 값을 부여해서 원래 값을 없앨 필요가 없으니까요. 이것으로 파이썬 튜플 자료형에 대한 포스팅을 마치겠습니다 :)

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기