CS & DS/Basic Python with Data Crawling
Python Data type (tuple) 파이썬 자료형 (튜플)
EthanJ
2022. 10. 8. 18:09
Python Data type 파이썬 자료형
5) 튜플 (tuple)
- 생성 문법 기호 : ( )
- 아이템을 수정/삭제할 수 없기 때문에 실수로 데이터가 변경되거나 삭제되는 위험이 적다.
- 객체를 저장하는데 더 적은 메모리를 사용한다.
- dictionay 자료형의 key로 활용할 수 있다.
- method의 parameter는 tuple 자료형으로 전달된다.
1. 생성하기
# 하나의 item을 가진 리스트
a = [1]
type(a)
list
# 생성 문법 기호: 소괄호()는 생략 가능 > 대신 comma(,)는 무조건 1개 이상
# 소괄호() > 함수 parameter, tuple 할당, 산술연산 등에서 사용 됨
# > tuple 표기 시 생략 가능 > but comma(,)로 item 구분해서 tuple 선언
# 대괄호[] > list 선언 시에만 사용 됨 > list 선언 시 필수 기재
tu1 = (1)
print(type(tu1))
tu2 = (1,)
print(type(tu2))
<class 'int'>
<class 'tuple'>
# 함수 tuple(list) > 리스트를 튜플로 변환 가능
a = [1]
b = tuple(a)
print(type(a), type(b))
print(a, b)
<class 'list'> <class 'tuple'>
[1] (1,)
# 변수 하나에 여러 값을 ,로 나열해 대입 > tuple로 인식
x = 12, 34, 56, 78
print(x)
print(type(x))
print(type(x[0]))
(12, 34, 56, 78)
<class 'tuple'>
<class 'int'>
# 변수 여러개에 > 변수 개수와 item 개수가 동일한 tuple 할당 > item을 각 변수에 하나씩 나눠서 값을 받음
x1, x2, x3 = 1, 2, 3
print(x1), print(x2), print(x3)
print(type(x1), type(x2), type(x3))
1
2
3
<class 'int'> <class 'int'> <class 'int'>
2. 인덱싱(indexing)
x[0]
12
3. 슬라이싱(slicing)
# slicing의 return값 > 원본 data type과 동일한 type 반환
x[:2]
(12, 34)
4. tuple 연산자
- 산술 연산자 : +, *
# 여러 tuple의 item을 합쳐서 새로운 tuple 만들기 > + 연산자
x + x
(12, 34, 56, 78, 12, 34, 56, 78)
# + 연산자 > return !=None > 원본에 영향 없으므로 논리적 문제 없음
x
(12, 34, 56, 78)
# 한 개의 tuple을 반복확장해서 새로운 tuple 만들기 > * 연산자
x * 3
(12, 34, 56, 78, 12, 34, 56, 78, 12, 34, 56, 78)
5. tuple 수정, 삭제 > 불가능!
# 수정하기 > indexing으로 하나의 item에 접근해서 수정 > Error
x[0] = 0 # TypeError
TypeError: 'tuple' object does not support item assignment
# 삭제하기 > del + indexing > Error
del x[0] # TypeError
#tuple 수정, 삭제 > 불가능!
TypeError: 'tuple' object doesn't support item deletion