-
chapter02-4 튜플 자료형점프 투 파이썬 2021. 9. 7. 16:28
튜플 자료형¶
튜플은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.
- 리스트는 []으로 둘러싸지만 튜플은 ()으로 둘러싼다.
- 리스트는 그 값의 생성 .삭제.수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
튜플의 모습은 다음과 같다.
In [2]:t1=() t2=(1,) t3=(1,2,3) t4=1,2,3 t5=('a','b',('ab','cd'))
리스트와 모습은 거의 비슷하지만 튜플에서는 리스트와 다른 2가지 차이점을 찾아볼 수 있다. t2=(1,)처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를 반드시 붙여야 한다는 것과 t4=1,2,3처럼 괄호()를 생략해도 무방하다는 점이다.
얼핏 보면 튜플과 리스트는 비슷한 역할을 하지만 프로그래밍을 할 때 튜플과 리스트는 구별해서 사용하는 것이 유리하다. 튜플과 리스트의 가장 큰 차이는 값을 변화시킬 수 있는가 여부이다. 즉 리스트의 항목 값은 별화가 가능하고 튜플의 항목 값은 변화가 불가능하다. 따라서 프로그램이 실행되는 동안 그 값이 항상 변하지 않기를 바란다거나 값이 바뀔까 걱정하고 싶지 않다면 주저하지말고 튜플을 사용해야 한다. 이와는 반대로 수시로 그 값을 변화시켜야 할 경우라면 리스트를 사용해야 한다. 실제 프로그램에서는 값이 변경되는 형태의 변수가 훨씬 많기 떄문에 평균적으로 튜플보다는 리스트를 더 많이 사용한다.
튜플의 요솟값을 지우거나 변경하려고 하면 어떻게 될까?¶
앞에서 설명했듯이 튜플의 요솟값은 한 번 정하면 지우거나 변경할 수 없다. 다음에 소개하는 두 예를 살펴보면 무슨말인지 알 수 있을 것이다.
튜플 요솟값을 삭제하려 할 때¶
In [3]:t1=(1,2,'a','b') del t1[0]
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-3-b8de262ae0c8> in <module> 1 t1=(1,2,'a','b') ----> 2 del t1[0] TypeError: 'tuple' object doesn't support item deletion
튜플의 요소를 리스트처럼 del 함수로 지우려고 한 예이다. 튜플은 요소를 지우는 행위가 지원되지 않는다는 메시지를 확인할 수 있다.
튜플 요솟값을 변경하려 할 때¶
In [4]:t1(1,2,'a','b') t1[0]'c'
File "<ipython-input-4-db1274338650>", line 2 t1[0]'c' ^ SyntaxError: invalid syntax
튜플의 요솟값을 변경하려고 해도 마찬가지로 오류가 발생하는 것을 확인할 수 있다.
튜플 다루기¶
튜플은 값을 변화시킬 수 없다는 점만 제외하면 리스트와 완전히 동일하므로 간단하게만 살펴보겠다. 다음 예제는 서로 연관되어 있으므로 차례대로 수행해 보기 바란다.
1. 인덱싱하기¶
In [5]:t1=(1,2,'a','b') t1[0]
Out[5]:1
In [6]:t1[3]
Out[6]:'b'
문자열, 리스트와 마찬가지로 t[0],t[3]처럼 인덱싱이 가능하다.
2. 슬라이싱하기¶
In [7]:t1=(1,2,'a','b') t1[1:]
Out[7]:(2, 'a', 'b')
t1[1]부터 튜플의 마지막 요소까지 슬라이싱하는 예이다.
3. 튜플 더하기¶
In [9]:t2=(3,4) t1+t2
Out[9]:(1, 2, 'a', 'b', 3, 4)
튜플을 더하는 방법을 보여 주는 예이다.
튜플 곱하기¶
In [10]:t2*3
Out[10]:(3, 4, 3, 4, 3, 4)
튜플의 곱하기 예를 보여 준다.
튜플 길이 구하기¶
In [11]:t1=(1,2,'a','b') len(t1)
Out[11]:4
튜플의 길이를 구하는 예이다.
(1,2,3)이라는 튜플에 값 4를 추가하여 (1,2,3,4)를 만들어 출력해보자.
In [19]:t1=(1,2,3) t2=(4,) t1+(4,)
Out[19]:(1, 2, 3, 4)
In [21]:t1+t2
Out[21]:(1, 2, 3, 4)
출처 : "점프투파이썬"
'점프 투 파이썬' 카테고리의 다른 글
chapter02-6 집합 자료형 (0) 2021.09.07 chapter02-5 딕셔너리 자료형 (0) 2021.09.07 chapter02-3 리스트 자료형 (0) 2021.09.06 chapter02-2 문자열 자료형(문자열 포매팅, 문자열 관련함수) (0) 2021.09.06 chapter02-2 문자열 자료형(문자열 인덱싱과 슬라이싱) (0) 2021.09.04