본문 바로가기
Python

Python - 기초 자료형(튜플)

by DGK 2021. 10. 13.

 

인프런 파이썬 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

기초 자료형(튜플)

 

  • 기본 개념
튜플 자료형은 순서가 있고 중복이 가능하지만, 수정 및 삭제가 불가능한 자료형이다.
이러한 특징으로 절대 변경되면 안되는 중요한 데이터를 저장할 때 사용한다.

# 선언 방식

a = ()
b = (1)  
c = (1,)
d = (1, 2, 3, 4)


print(type(a), type(b), type(c), type(d))

# 결과 : <class 'tuple'> <class 'int'> <class 'tuple'> <class 'tuple'>
# 튜플의 데이터가 1개인 경우에는 반드시 데이터 뒤에 ,기호를 함께 넣어야만
# 튜플 데이터 타입을 갖게 된다.(데이터가 2개 이상일 경우에는 ,기호 필요X)
# 단, 변수에 괄호()없이 데이터를 선언해도 튜플이 되며 시퀀스형이다.




# 수정 예시

d[0] = 1500

# 결과 : TypeError: 'tuple' object does not support item assignment
# 튜플의 데이터를 수정하는 경우, 에러가 발생하며 수정이 이루어지지 않는다.

 

 

  • 응용 개념
# 인덱싱 예시

a = ()
b = (1,) 
c = (11, 12, 13, 14) 
d = (100, 1000, 'Ace', 'Base', 'Color')
e = (100, 1000, ('Ace', 'Base', 'Color'))


print('d - ', d[1])

# 결과 : d -  1000


print('d - ', d[0] + d[1] + d[1])

# 결과 : d -  2100


print('d - ', d[-1])

# 결과 : d -  Color


print('e - ', e[-1])

# 결과 : e -  ('Ace', 'Base', 'Color')


print('e - ', e[-1][1])

# 결과 : e -  Base


print('e - ', list(e[-1][1]))

# 결과 : e -  ['B', 'a', 's', 'e']
# 튜플을 리스트로 바꾸는 형 변환을 한 것이다.




# 슬라이싱 예시

a = ()
b = (1,) 
c = (11, 12, 13, 14) 
d = (100, 1000, 'Ace', 'Base', 'Color')
e = (100, 1000, ('Ace', 'Base', 'Color'))


print('d - ', d[0:3])

# 결과 : d -  (100, 1000, 'Ace')


print('d - ', d[2:])

# 결과 : d -  ('Ace', 'Base', 'Color')


print('e - ', e[2][1:3])

# 결과 : e -  ('Base', 'Color')




# 튜플의 연산 예시

a = ()
b = (1,) 
c = (11, 12, 13, 14) 
d = (100, 1000, 'Ace', 'Base', 'Color')
e = (100, 1000, ('Ace', 'Base', 'Color'))


print('c + d', c + d)

# 결과 : c + d (11, 12, 13, 14, 100, 1000, 'Ace', 'Base', 'Color')
# 튜플 c의 마지막 부분에 튜플 d의 데이터가 더해진다.
# 즉, 두 튜플을 더하는 경우에는 튜플의 데이터가 합쳐진다.


print('c * 3', c * 3)

# 결과 : c * 3 (11, 12, 13, 14, 11, 12, 13, 14, 11, 12, 13, 14)
# 튜플의 데이터가 순서를 유지하면서 곱한 횟수만큼 반복된다.
# 즉, 튜플의 곱연산은 데이터를 반복한다.(데이터 순서 유지)




# 튜플 함수 예시

a = (5, 2, 3, 1, 4)
print('a - ', a)
print('a - ', a.index(3))

# 결과 : a -  2
# index( ) 함수는 특정 데이터의 인덱스 번호를 알려준다.


print('a - ', a.count(2))

# 결과 : a -  1
# count( ) 함수는 특정 데이터의 인덱스 번호로 알려준다.




# 팩킹 & 언팩킹 예시(중요)

# 팩킹(튜플을 선언하는 것)
t = ('foo', 'bar', 'baz', 'qux')

print(t)		# 결과 : ('foo', 'bar', 'baz', 'qux')
print(t[0])		# 결과 : foo
print(t[-1])		# 결과 : qux

# 이렇게 여러개의 데이터를 하나로 묶는 것을 팩킹이라고 한다.(여기서는 튜플과 동일 개념)



# 언팩킹(튜플의 데이터를 풀어서 변수들에 할당 혹은 대입하는 것)
t = ('foo', 'bar', 'baz', 'qux')
(x1, x2, x3, x4) = t

print(type(x1), type(x2), type(x3), type(x4))

# 결과 : <class 'str'> <class 'str'> <class 'str'> <class 'str'>


print(x1, x2, x3, x4)

# 결과 : foo bar baz qux

# t = ('foo', 'bar', 'baz', 'qux')와 같이 변수에 팩킹되어있던 데이터들을 풀어서
# 다른 변수들(x1, x2, x3, x4)에 하나씩 할당하는 것을 언팩킹이라고 한다.
# 단, 변수에 할당되는 데이터의 순서는 튜플의 데이터 순서와 동일하다.


t2 = 1, 2, 3

# 팩킹
# t2 = (1, 2, 3)의 형태로도 튜플을 선언할 수 있다.


t3 = 4,       

# 팩킹
# t3 = (4,)의 형태로도 튜플을 선언할 수 있다.


x1, x2, x3 = t2

# 언팩킹
# (x1, x2, x3) = t2의 형태로도 언팩킹이 가능하다.


x4, x5, x6 = 4, 5, 6

# 언팩킹
# (x4, x5, x6) = 4, 5, 6의 형태로도 언팩킹이 가능하다.


print(t2)		# 결과 : (1, 2, 3)
print(t3)		# 결과 : (4,)
print(x1, x2, x3)	# 결과 : 1 2 3
print(x4, x5, x6)	# 결과 : 4 5 6

'Python' 카테고리의 다른 글

Python - 기초 자료형(집합)  (0) 2021.10.13
Python - 기초 자료형(딕셔너리)  (0) 2021.10.13
Python - 기초 자료형(리스트)  (0) 2021.10.13
Python - 기초 자료형(문자형)  (0) 2021.10.13
Python - 기초 자료형(숫자형)  (0) 2021.10.11

댓글