DevSSOM

파이썬 기초 - 튜플 자료형 본문

Python/기초

파이썬 기초 - 튜플 자료형

데브쏨 2021. 6. 7. 23:29
반응형

여러 자료를 담는 자료형이 필요하면?

대부분 리스트를 이용함.

하지만, 리스트는 값이 바뀔 위험이 있어. 아래처럼 코드 한 줄로 바뀌잖아.

my_list = ['l', 'i', 's', 't']
my_list[1] = 'a'
print(my_list)  # ['l', 'a', 's', 't']

 

그래서 값을 바꿀 수 없으면서도, 여러 자료를 담을 수 있는 자료형

-> 튜플을 사용하는 것.

 

 

튜플(Tuple)

튜플은 소괄호 ( )를 이용해서 표시. 

tuple_zero = ()   # 빈 튜플
tuple_one = (1,)  # 이게 튜플인데 원소가 하나밖에 없는 것 뿐이야 라는 걸 알려주기 위해 , 표시
tuple = (1, 2, 3, 4, 5)
tuple = 1, 2, 3, 4, 5  # 괄호로 안 묶고 나열해서 써도 알아서 튜플로 인식해 

 

튜플 또한 시퀀스 자료형으로 인덱스를 이용해서 인덱싱 하거나 슬라이싱 하는 것도 가능,

in 연산자로 튜플 안에 원소도 확인할 수 있고, len() 함수로 길이 확인하는 것도 OK.

my_tuple = ('a', 'b', 'c', 'd', 'e')
print(my_tuple[1])      # 'b'
print(my_tuple[2:4])    # ('i', 'c')
print('t' in my_tuple)  # True
print(len(my_tuple))    # 5

+ 연산자로 튜플과 튜플을 연결할 수도 있고, * 연산자로 반복할 수도 있음.

my_tuple = ('i', 'c', 'e')
print(('c', 'h', 'o') + my_tuple)   # ('c', 'h', 'o', 'i', 'c', 'e')
print(my_tuple * 2)   # ('i', 'c', 'e', 'i', 'c', 'e')

여기까지만 보면, 어? 튜플이랑 리스트랑 다를 게 없는데? 라고 생각할 수 있지만

한 번 만들어지면 그대로 박제됨. 더 이상 수정할 수 없음.

my_tuple = ('c', 'h', 'o', 'i', 'c', 'e')
print(my_tuple.append('!'))   # 에러
print(my_tuple.remove('o'))   # 에러
my_tuple[1] = 'e'             # 에러

 

이게 바로 튜플리스트의 차이

my_tuple = (1, 2, 3)
my_list = [1, 2, 3]

my_tuple.append(4) # 에러
my_tuple.pop()     # 에러
my_tuple[0] = 4    # 에러

my_list.append(4)  # OK
my_list.pop()      # OK
my_list[0] = 4     # OK

 

 

 

연습문제

 

1. 숫자 1, 2, 3, 4, 5 가 담긴 튜플 my_tuple을 선언.

2. my_tuple의 인덱스2의 원소를 변수 var1에 넣어.

3. my_tuple의 인덱스 1, 2, 3의 원소를 슬라이싱해서 변수 var2에 넣어.

4. my_tuple의 길이를 변수 var3에 넣어.

my_tuple = (1, 2, 3, 4, 5)
var1 = my_tuple[2]    # 3
var2 = my_tuple[1:4]  # (2, 3)
var3 = len(my_tuple)  # 5

 

728x90
반응형
댓글