4. 튜플 자료형
4.1. 튜플 자료형의 특성
- 튜플은 대괄호([ ])가 아닌 소괄호(( ))를 사용해서 표현함
- 튜플은 한 번 만들면 요소의 값을 바꿀 수 없음이 리스트와 다름
- 단, 괄호를 생략할 수 있다는 점은 리스트와 다름
- 리스트에서는 대괄호를 생략할 수 없음
- 그 외는 리스트와 같은 특성을 가짐
- 인덱싱 및 슬라이싱을 리스트와 같은 방법으로 사용 가능
4.1.1. 다양한 튜플 만들기
1) 빈 튜플 만들기
# 빈 튜플 만들기 #1
score = ()
# 확인
score
----------
()
# 빈 튜플 만들기 #2
score = tuple()
# 확인
score
----------
()
2) 요소가 하나인 튜플 만들기
# 튜플을 잘못 만든 예
score = (90)
# 확인
print(score)
print(type(score))
---
90
<class 'int'>
→ 튜플이 아닌 정수 자료형이 생성됨
# 요소가 하나인 튜플 만들기
score = (90,)
# score = 90, # 이것도 튜플
# 확인
print(score)
print(type(score))
print(len(score))
---
(90,)
<class 'tuple'>
1
→ 요소 뒤에 ','를 넣어줌으로써 튜플 생성
3) 문자열로 튜플 만들기
# 문자열로 튜플 만들기
chars = tuple('PYTHON')
# 확인
print(chars) # ('P', 'Y', 'T', 'H', 'O', 'N')
---
('P', 'Y', 'T', 'H', 'O', 'N')
4.1.2. 리스트 vs. 튜플
- 튜플이 요소를 변경할 수 없다는 것을 확인
1) 리스트의 경우
# 리스트 만들기
a = [1, 2, 3, 4, 5]
# 요소 변경
a[0] = 10
# 확인
print(a)
---
[10, 2, 3, 4, 5]
2) 튜플의 경우
# 튜플 만들기
b = (1, 2, 3, 4, 5)
# 요소 변경
b[0] = 10
# 튜플은 변경 불가능하므로 재선언해야 한다.
# TypeError: 'tuple' object does not support item assignment
---
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[43], line 5
2 b = (1, 2, 3, 4, 5)
4 # 요소 변경
----> 5 b[0] = 10
TypeError: 'tuple' object does not support item assignment
4.1.3. 튜플 활용
1) 괄호 없이 생성 가능
# 괄호 없이 튜플 만들기
a = 10
b = 20
c = a, b # c = (a, b)
# 확인
c
---
(10, 20)
2) 여러 변수에 동시에 값 대입 가능
# 여러 변수에 동시에 값 대입
a, b, c = 10, 20, 30
print('a =', a)
print('b =', b)
print('c =', c)
---
a = 10
b = 20
c = 30
# 여러 변수에 동시에 값 대입(튜플 포함)
a, b, c = 10, 20, (1, 2, 3)
print('a =', a)
print('b =', b)
print('c =', c)
---
a = 10
b = 20
c = (1, 2, 3)
3) 변수의 값을 서로 변강할 수도 있음
# 변수 값 서로 변경 가능
a, b = 10, 20
print('a =', a, 'b =', b)
a, b = b, a
print('a =', a, 'b =', b)
---
a = 10 b = 20
a = 20 b = 10
4) 함수 리턴값을 두 변수에 대입할 수 있음
# 튜플 사용
a, b = 45, 20
x, y = divmod(a, b) # divmod(a, b)가 튜플 형태의 값을 반환해줌
print(x, y)
---
2 5
'에이블스쿨 6기 DX 트랙 > 일일 복습' 카테고리의 다른 글
DAY 05. 함수 (1) | 2024.09.12 |
---|---|
DAY 04. 제어문 (0) | 2024.09.11 |
DAY 03. 딕셔너리 자료형 (3) | 2024.09.06 |
DAY 03. 집합 자료형 (0) | 2024.09.06 |
DAY 02. 리스트 자료형 (0) | 2024.09.06 |