#23-파이썬 기초 실습 - 튜플(Tuple) - 1

2020. 2. 3. 07:59AI & BigData/Python Basics

파이썬 기초 실습 - 튜플(Tuple) - 1

데이타 타입

* 튜플(Tuple)
- Tuple은 리스트와 비슷한 여러 요소들을 갖는 컬렉션이다. 
- 리스트와 다른 점은 Tuple은 새로운 요소를 추가하거나 갱신, 삭제하는 일을 할 수 없다. 

- Tuple은 한변 결정된 요소를 변경할 수 없는 Immutable 데이타 타입이다.
- Tuple은 컬렉션이 항상 고정된 요소값을 갖기를 원하거나 변경되지 말아야 하는 경우에 사용하게 된다.

- 튜플의 요소들은 둥근 괄호 (.....) 를 사용하여 컬렉션을 표현한다. 
- 각 요소들은 서로 다른 타입이 될 수 있으며, 컴마(,)로 구분한다. 
- 요소가 없는 빈 튜플은 "()"와 같이 표현한다.

In [1]:

# 튜플에 작성된 내용은 변경 할수 없다.
t = (1,2,3)

In [2]:

t[0]

Out[2]:

1

In [3]:

L = list(t)
print(L)
[1, 2, 3]

In [4]:

T = tuple(L)
print(T)
(1, 2, 3)

In [5]:

t[0] = 'NEW' # 튜플은 값을 변경할수 없다. 에러 발생
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-d740bfc159f2> in <module>
----> 1 t[0] = 'NEW' # 튜플은 값을 변경할수 없다. 에러 발생

TypeError: 'tuple' object does not support item assignment

In [6]:

tp = (1,2,3,False,True,"Tuple","튜플테스트")

In [7]:

print(tp)
(1, 2, 3, False, True, 'Tuple', '튜플테스트')

1. Tuple 요소가 하나일 경우에는 요소 뒤에 콤마를 붙여 명시적으로 Tuple임을 표시해야 한다.

In [8]:

tp1 = (777)

In [9]:

type(tp1) # 콤마가 없으면 int Type로 인식합니다.

Out[9]:

int

In [10]:

tp2 = (777,)  # tuple 타입

In [11]:

type(tp2)

Out[11]:

tuple

2. Tuple 인덱싱과 슬라이싱

  • Tuple은 리스트와 마찬가지로 인덱싱과 특정 부분집합을 리턴하는 슬라이싱 지원한다.
  • 단, 요소값을 변경하거나 추가 혹은 삭제하는 일은 할 수 없다.

In [12]:

tp3 = (1, 3, 5, 7) 

In [13]:

# 인덱스
start = tp3[1]      # 5
end = tp3[-1]       # 10
start , end

Out[13]:

(3, 7)

In [14]:

# 슬라이스
s1 = tp3[0:1]
s2 = tp3[:2] 
s3 = tp3[2:] 
s4 = tp3[:]
s1, s2, s3, s4

Out[14]:

((1,), (1, 3), (5, 7), (1, 3, 5, 7))

3. Tuple 병합과 반복

  • Tuple은 리스트와 마찬가지로 두 개의 튜플을 병합하기 위해 플러스(+)를 사용하고, 하나의 튜플을 N 번 반복하기 위해서는 "튜플 * N"와 같이 표현한다.

In [15]:

# 병합
a = (1, 2, 3)
b = (3, 4, 5)
c = a + b
print(c)
(1, 2, 3, 3, 4, 5)

In [16]:

# 반복
c = a * 3
print(c)   # (1, 2, 3, 1, 2, 3, 1, 2, 3)
(1, 2, 3, 1, 2, 3, 1, 2, 3)

4. Tuple 변수 할당

  • Tuple 데이타를 변수에 할당할 때, 각 요소를 각각 다른 변수에 할당할 수도 있다.

In [17]:

# 아래 예제에서 첫번째 예의 name 변수는 튜플 전체를 할당받는 변수
name = ("Python", "Pandas")
print(name)
('Python', 'Pandas')

In [18]:

type(name)

Out[18]:

tuple
  • start, end 변수는 튜플에 있는 각 요소를 하나씩 할당받는 변수들이다.

In [19]:

start, end = ("Python", "Pandas")
print(start, ",", end)
Python , Pandas

In [20]:

type(start)

Out[20]:

str

In [21]:

type(end)

Out[21]:

str

In [ ]: