Python/Python 시작하기

9. 파이썬 자료형 - 튜플(tuple)

arvigoes 2019. 12. 15. 21:52

튜플 (tuple)                                                        

튜플은 리스트와 거의 비슷합니다.

  1. 다양한 타입이 입력 가능합니다.

  2. 인덱싱을 사용 할 수 있습니다.

  3. 내장함수 len(X) 를 통해 길이 확인이 가능 합니다.

  4. 슬라이싱도 사용 가능합니다.

기타 아직은 안배운 내용이 많이 있지만 많은부분이 리스트와 동일 합니다. 

리스트에서 가능한건 대부분 가능 합니다. 

# Code 1
# list 와 동일한 점
tup = (1, 1.2, "사과", (5,6,7))       # 다양한 타입 들어감
print(type(tup))        # 타입확인
print(tup)              # 출력
print(len(tup))         # len 으로 길이확인
print(tup[2])           # 인덱싱
print(tup[-1])          # 인덱싱 리버스
print(tup[0:3])         # 슬라이싱
tup = tup + (3 ,5)      # 튜플 더하기
print(tup)              # 튜플 더하기 출럭
print(tup*3)            # 튜플 곱하기
print(tup[3][1])        # 튜플 안에 튜플

8-1. 리스트와 비슷한점

리스트와 거진 비슷하 지만 큰 차이점이 있습니다.

  1. 리스트는 대괄호([]) 를 통해 테이터를 감싸지만 튜플은 소괄호() 로 사용합니다.

  2. 한번 생성된 튜플은 값을 변경 할 수 없습니다.

  3. 튜플은 하나의 원소만 있는경우 튜플이 되지 않습니다.

     - 가능한 방법은 있습니다. 한개의 원소 뒤에 콤마(,) 를 찍어주면 튜플이 됩니다.

  4. 리스트는 대괄호[] 가 필수 이지만 튜플은 안써도 됩니다.

# Code 2
# list 와 동일한 차이점
tup_na = (1)                # 하나의 객체로는 튜플이 안됩니다.
print(type(tup_na))
tup_na2 = (1,)              # 하나의 객체로 튜플 만드는법
print(type(tup_na2))
tup = 1, 1.2, "사과"         # 초기화 () 없어도 튜플로 인식
print(type(tup))

8-2. 리스트와 차이점

 

한번 생성된 튜플은 값을 변경 할 수 없습니다. 만약 변경한다면 아래와 같이 에러로 처리되어 실행이 되지 않습니다.

8-3. 튜플 값변경 에러

리스트에서 요소 삭제시 사용하던 "del"  도 사용이 불가능 합니다.

 

리스트와 너무나도 비슷한 튜플이였습니다.

어떻게 보면 리스트에 비해 제약만 있는 튜플을 꼭 사용해야 하냐라는 의문도 생길 수 있습니다.

리스트는 가변적(mutable:변경가능) 튜플은 불변적(immutable:변경불가능) 이 부분이 파이썬에서 리스트와 튜플을 구분 하는 유일한 차이점 입니다.

효율적인 관점에서 보면 튜플이 언제든 요소를 추가 삭제 변경이 발생할 수 있는 (이부분에 최적화 되어 있는) 리스트 보다는 좀더 공간 효율적입니다. 이 이유만으로도 튜플을 사용할 이유는 충분합니다.

그리고 특정값을 유지 시키는 편한 수단으로도 활용이 가능해 보이네요