에이블스쿨 6기 DX 트랙/일일 복습

DAY 03. 튜플 자료형

d061120 2024. 9. 6. 18:35

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