본문 바로가기
Python/Python 기초

[Python] 튜플 자료형

by snow_white 2022. 3. 12.

튜플

t1 = ()
t2 = (1,)
t3 = (1, 2, 3)
t4 = 1, 2, 3
t5 = ('a', 'b', ('ab', 'cd'))

# , (콤마)없다면 int형으로 간주
t1 = (1)
print(type(t1)) # <class 'int'>

튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.

 

  • 리스트는 [ ] 으로 값을 둘러싸지만 튜플은 ( )를 사용한다.
  • 리스트는 값을 추가, 삭제, 수정..즉 변경이 가능하지만 튜플은 한번 생성된 값을 수정, 추가, 삭제 같은 변경을 할 수 없다.
  • 읽기전용 타입이다
  • 만약에 튜플로 만들어진 값을 조작하고 싶다면 리스트로 형을 변환시킨 다음에 변경할 수 있다. list(tuple)

 

my_t = 1,2,3 # 튜플
my_list = [1,2,3] #리스트
 
print(len(my_t)) # 3
print(len(my_list)) # 3

import sys
print('튜플',sys.getsizeof(my_t)) # 64
print('리스트',sys.getsizeof(my_list)) #120

튜플이 리스트보다 메모리 차지 덜 하다. 따라서 리스트로 작업하고 튜플로 데이터 저장하기도 한다.

 

 

1. 튜플 요솟값을 삭제하려 할 때

t1 = (1, 2, 'a', 'b')
del t1[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion

 

 

2. 튜플 요솟값을 변경하려 할 때

t1 = (1, 2, 'a', 'b')
t1[0] = 'c'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

 

인덱싱하기

t1 = (1, 2, 'a', 'b')
t1[0] # 1
t1[3] # 'b'

문자열, 리스트와 마찬가지로 t1[0], t1[3]처럼 인덱싱이 가능하다.

 

슬라이싱하기

t1 = (1, 2, 'a', 'b')
t1[1:] # (2, 'a', 'b')

 

튜플 더하기

t1 = (1, 2, 'a', 'b')
t2 = (3, 4)
t1 + t2 # (1, 2, 'a', 'b', 3, 4)

 

튜플 곱하기

t2 = (3, 4)
t2 * 3 # (3, 4, 3, 4, 3, 4)

 

튜플 길이 구하기

t1 = (1, 2, 'a', 'b')
len(t1) # 4

 

튜플을 리스트로 변경하기

tuple() 함수를 사용

list() 함수를 사용

fruits = ['사과','바나나','망고','포도']
fruits_t = tuple(fruits)
print(type(fruits_t)) # <class 'tuple'>
print(fruits_t) # ('사과', '바나나', '망고', '포도')

# 튜플을 다시 리스트로 변경.. list() 함수 사용

fruits_l = list(fruits_t)
print(fruits_l) # ['사과', '바나나', '망고', '포도']

fruits_l[0] = '포도'
print(fruits_l) # ['포도', '바나나', '망고', '포도']

'Python > Python 기초' 카테고리의 다른 글

[Python] 집합 자료형  (0) 2022.03.12
[Python] 딕셔너리 자료형  (0) 2022.03.12
[Python] 리스트 자료형  (0) 2022.03.12
[Python] 변수와 데이터 타입 / 객체  (0) 2022.03.12
[Python] 파이썬 입문  (0) 2022.03.12

댓글