06강. [Python]튜플

2025. 2. 1. 21:43·Python/Foundation

튜플이란?

튜플은 리스트와 비슷하지만 추가, 수정, 삭제가 되지 않는 읽기 전용 리스트라고 생각하면 된다.

 

튜플의 기본 사용

먼저 빈 튜플 생성하는 방법에 대해 알아보자.

빈 튜플은 소괄호 또는 tuple함수를 통해 생성할 수 있다.

# 빈 튜플 생성하기
tu1 = ()
tu2 = tuple()

print(tu1, type(tu1))
print(tu2, type(tu2))
() <class 'tuple'>
() <class 'tuple'>

요소가 하나인 리스트는 그냥 생성이 가능하지만 튜플은 그냥 생성하면 안 된다.

다음은 요소가 하나인 튜플을 생성하는 방법이다.

# 요소가 하나인 튜플 생성
tu1 = (1) # 잘못된 방법
tu2 = (1,) # 올바른 방법

print(tu1, type(tu1)) # 그냥 int형으로 생성됨
print(tu2, type(tu2)) # 올바르게 튜플이 생성됨
1 <class 'int'>
(1,) <class 'tuple'>

 

인덱싱과 슬라이싱

튜플은 추가, 수정, 삭제가 안될 뿐이지 인덱싱과 슬라이싱은 가능하다.

인덱싱과 슬라이싱에 대한 설명은 리스트에 했으니 리스트 글을 참고하면 된다.

 

05강. 리스트

리스트란?리스트는 한 번에 여러 값을 넣을 수 있는 파이썬의 자료형이다.추가, 수정, 삭제가 가능하고 인덱싱, 슬라이싱이 가능하는 특징이 있다. 리스트의 기본 사용먼저 빈 리스트를 생성하

c0de-log.tistory.com

그럼 튜플의 인덱싱과 슬라이싱은 예제만 간단히 보고 간단히 넘기겠다.

# 인덱싱
tu = tuple(range(10))
print(tu)

print(tu[0])
print(tu[4])
print(tu[8])
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
0
4
8

# 슬라이싱
tu = tuple(range(10))
print(tu)

print(tu[3:8:2]) 
print(tu[:8:2]) # 처음부터 시작이면 시작값 생략 가능
print(tu[3::2]) # 마지막 값이 끝값이면 마지막 값 생략 가능
print(tu[3:8]) # 스텝값이 1이면 생력가능
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
(3, 5, 7)
(0, 2, 4, 6)
(3, 5, 7, 9)
(3, 4, 5, 6, 7)

 

튜플의 함수들

튜플은 추가, 삭제가 불가능하므로 요소에 대한 함수들만 짚고 넘어가겠다.

또한 리스트에 설명한 함수이므로 설명 없이 예제만 보고 넘어간다.

# len() : 리스트 요소 개수 반환
tu = (1, 2, 3, 4, 5)
print(len(tu))

# sum() : 리스트 요소들의 합 반환
tu = (1, 2, 3, 4, 5)
print(sum(tu))
15

# index() : 특정 요소의 인덱스 번호 반환
tu = (1, 2, 3, 4, 5)
print(tu.index(3))
2

# count() : 특정 요소의 개수 반환
tu = (1, 1, 1, 3, 3)
print(tu.count(1))
print(tu.count(3))
3
2

# in : 튜플 요소들 중 특정값의 존재여부를 논리형으로 반환
tu = (1, 2, 3, 4, 5)
print(3 in tu)
print(6 in tu)

print(2 not in tu)
print(8 not in tu)
True
False
False
True

# max() : 요소 중 가장 큰 값을 반환
tu = (1, 2, 3, 4, 5)
print(max(tu))
5

# min() : 요소 중 가장 작은 값을 반환
tu = (1, 2, 3, 4, 5)
print(min(tu))
1

sorted함수는 정렬된 결과를 반환하는 함수이기에 수정이라고 볼 수 없으므로 튜플에서도 사용 가능하다.

하지만 결과는 리스트로 반환된다.

# sorted() : 요소를 크기 순서대로 정렬한다.
tu = (2, 1, 4, 8, 7)
print(sorted(tu))

# 괄호 안에 reverse = True로 설정하면 내림차순이 된다.
tu = (2, 1, 4, 8, 7)
print(sorted(tu, reverse = True))
[1, 2, 4, 7, 8]

 

패킹과 언패킹

튜플은 패킹과 언패킹을 할 수 있다.

패킹은 소괄호가 없어도 알아서 튜플 자료형으로 만들어주는 것이고 언패킹은 튜플 내 요소들을 각각의 변수에 할당해 주는 것이다.

# 패킹
tu = 1, 2, 3 # 소괄호가 업다.
print(tu, type(tu)) # 하지만 패킹으로 인해 자동으로 튜플로 묶어준다.
(1, 2, 3) <class 'tuple'>

# 언패킹
tu = (1, 2, 3)
a, b, c= tu # 요소의 개수에 맞게 변수를 써주면 순서에 맞게 할당된다.

print(a, b, c)
1 2 3

# 요소 개수와 변수 개수가 같지 않으면 에러가 발생한다.
ValueError: too many values to unpack (expected 2)

 

결론

튜플도 우회(리스트 컴프리헨션) 등을 통하여 추가, 삭제가 가능하다.

하지만 튜플의 주된 사용목적은 데이터의 불변성이므로 추가, 삭제를 할 데이터는 리스트를 사용하는 것이 좋다.

'Python > Foundation' 카테고리의 다른 글

08강. [Python]세트  (0) 2025.02.02
07강. [Python]딕셔너리  (0) 2025.02.01
05강. [Python]리스트  (0) 2025.02.01
04강. [Python]연산자  (0) 2025.01.31
03강. [Python]자료형  (1) 2025.01.31
'Python/Foundation' 카테고리의 다른 글
  • 08강. [Python]세트
  • 07강. [Python]딕셔너리
  • 05강. [Python]리스트
  • 04강. [Python]연산자
C0de-Log
C0de-Log
c0de-log 님의 블로그 입니다.
  • C0de-Log
    C0de-Log
    C0de-Log
  • 전체
    오늘
    어제
    • 분류 전체보기 (18)
      • C (0)
      • Python (17)
        • Foundation (14)
        • Library (3)
      • ML (0)
      • 공모전 & 자격증 (1)
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    polars
    들여쓰기
    ADSP
    주석
    tuple
    딕셔너리
    변수
    조건문
    반복문
    사용자 정의 함수
    합격
    리스트
    dictionary
    넘파이
    세트
    함수
    연산자
    Pandas
    폴라스
    람다
    자료형
    코드블록
    제어문
    CLASS
    판다스
    Python
    튜플
    lambda
    numpy
    클래스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
C0de-Log
06강. [Python]튜플
상단으로

티스토리툴바