Python 튜플(tuple)

코딩Python
읽는데 8분 소요
처음 쓰여진 날: 2026-04-09
마지막 수정일: 2026-04-09
조회수: 6

요약

Python 튜플의 생성, 인덱싱, 슬라이싱, 연산, 메서드, 중첩 튜플까지. 리스트와의 차이점, 요소 하나인 튜플의 쉼표 규칙, tuple() 변환 등 정보처리기사 실기에 필요한 튜플 핵심 개념을 정리합니다.

튜플 핵심 정리

개념설명예시
튜플 생성소괄호로 묶어서 생성t = (1, 2, 3)
괄호 없는 튜플콤마만으로도 튜플 생성t = 1, 2, 3
요소 1개 튜플끝에 쉼표 필수t = (100,)
인덱싱인덱스 하나로 요소 한 개 꺼내기t[0], t[-1]
슬라이싱시작·끝 범위로 여러 요소 잘라내기t[1:3], t[::-1]
연결 (+)두 튜플을 이어 붙이기(1, 2) + (3, 4)
반복 (*)튜플을 여러 번 반복(1, 2) * 3
포함 여부 (in)특정 값이 있는지 확인3 in (1, 2, 3)
count()특정 값의 개수t.count(2)
index()특정 값의 위치t.index(2)

아래에서 하나씩 자세히 배웁니다.


튜플이란? 쌩기초

튜플(tuple) 은 여러 값을 순서대로 묶어서 저장하는 자료형입니다. 리스트처럼 여러 값을 순서대로 저장하고, 인덱싱과 슬라이싱도 같은 방식으로 쓸 수 있지만, 한 번 만들면 요소를 변경할 수 없다는 점이 다릅니다.

python
코드 하이라이팅 중...

TypeError1는 Python이 "이 자료형은 이 동작을 지원하지 않는다"고 알려주는 오류입니다.

이처럼 한 번 만들면 수정할 수 없는 성질을 불변(immutable) 이라고 합니다. 리스트는 변경 가능(mutable), 튜플은 변경 불가(immutable)입니다. 실제로 변경을 시도하면 다음 오류가 발생합니다.

text
코드 하이라이팅 중...
항목리스트튜플
괄호대괄호 [ ]소괄호 ( )
변경 가능 여부변경 가능 (mutable)변경 불가 (immutable)
요소 추가/삭제append(끝에 추가), pop(마지막 제거) 등 가능불가
자료형 표기<class 'list'><class 'tuple'>

튜플 만들기 쌩기초

소괄호로 만들기

가장 기본적인 방법은 소괄호 ( )로 감싸는 것입니다.

python
코드 하이라이팅 중...

type() 함수는 값의 자료형을 알려줍니다. <class 'tuple'>은 "이 값은 tuple 자료형입니다"라는 뜻입니다.

괄호 없이 만들기

Python에서는 콤마만 찍어도 튜플이 만들어집니다. 괄호는 가독성을 위한 것이지 필수가 아닙니다.

python
코드 하이라이팅 중...

요소가 하나인 튜플

괄호 안에 값 하나만 넣으면 Python은 그냥 괄호로 감싼 값으로 해석합니다. 요소가 한 개인 튜플을 만들려면 쉼표를 반드시 붙여야 합니다.

python
코드 하이라이팅 중...

빈 튜플

요소가 없는 빈 튜플도 만들 수 있습니다.

python
코드 하이라이팅 중...

tuple() 함수로 변환

tuple() 함수를 사용하면 리스트, 문자열, range 같은 시퀀스2를 튜플로 변환할 수 있습니다.

python
코드 하이라이팅 중...

반대로 튜플을 리스트로 바꾸려면 list()를 사용합니다.

python
코드 하이라이팅 중...


튜플 인덱싱 쌩기초

튜플도 리스트와 동일하게 인덱스로 요소에 접근할 수 있습니다. 인덱스는 0부터 시작합니다.

python
코드 하이라이팅 중...

음수 인덱스

뒤에서부터 세려면 음수 인덱스를 사용합니다. -1은 마지막 요소, -2는 뒤에서 두 번째입니다.

python
코드 하이라이팅 중...
요소abcde
양수 인덱스01234
음수 인덱스-5-4-3-2-1

튜플 슬라이싱 기초

리스트 슬라이싱과 동일한 문법을 사용합니다. t[시작:끝:간격] 형식이며, 결과도 튜플로 반환됩니다. 끝 인덱스는 결과에 포함되지 않습니다. 예를 들어 t[1:4]는 인덱스 1, 2, 3의 요소를 가져오고 4는 포함하지 않습니다.

python
코드 하이라이팅 중...
t[1:4] 슬라이싱 범위 다이어그램
t[1:4] — 인덱스 1부터 3까지 선택 (끝 인덱스 4는 미포함)
t[::2] 슬라이싱 간격 다이어그램
t[::2] — 처음부터 끝까지 2칸씩 건너뛰며 선택

t[::-1]에서 간격이 -1이면 뒤에서 앞으로 이동합니다. 시작과 끝을 생략하면 전체를 역순으로 뒤집습니다.

슬라이싱 결과는 새로운 튜플입니다. 원본 튜플은 변하지 않습니다.


튜플 연산 기초

연결 (+)

+ 연산자는 두 튜플을 이어 붙여 새로운 튜플을 만듭니다. 원본은 변하지 않습니다.

python
코드 하이라이팅 중...

반복 (*)

* 연산자는 튜플 안에 있는 요소들을 반복해서 나열합니다. 튜플을 중첩하는 것이 아니라 요소를 펼쳐서 이어 붙입니다.

python
코드 하이라이팅 중...

포함 여부 (in)

in 연산자는 특정 값이 튜플에 있는지 확인합니다.

python
코드 하이라이팅 중...

튜플 메서드 기초

튜플은 변경 불가이므로 리스트에 비해 메서드가 적습니다. 사용할 수 있는 메서드는 두 가지뿐입니다.

메서드설명예시
count(값)해당 값이 몇 개 있는지 반환t.count(2)
index(값)해당 값이 처음 나타나는 인덱스 반환. 없으면 ValueError 발생t.index(2)
python
코드 하이라이팅 중...

중첩 튜플 심화

튜플 안에 튜플이나 리스트를 넣을 수 있습니다.

python
코드 하이라이팅 중...
중첩 튜플 nested[0][1] 접근 다이어그램
nested[0][1] — 바깥 인덱스로 안쪽 튜플을 꺼내고, 안쪽 인덱스로 값을 꺼낸다

nested[0]은 첫 번째 튜플 (1, 2)를 꺼내고, 거기에 다시 [1]을 붙이면 그 튜플의 두 번째 요소인 2를 꺼냅니다.

중첩 튜플은 for 루프에서 언패킹과 함께 자주 사용됩니다. 각 요소가 (0, 0) 같은 튜플이므로 x, y에 자동으로 나뉘어 들어갑니다.

python
코드 하이라이팅 중...

f-string은 문자열 앞에 f를 붙이고 {변수명}을 쓰면 그 자리에 변수 값이 들어갑니다.


정보처리기사 실기 기출 문제


Footnotes

  1. TypeError는 지원하지 않는 연산을 시도할 때 Python이 발생시키는 오류 유형입니다.

  2. 시퀀스(sequence)는 여러 값을 순서대로 묶어 저장하는 자료형입니다. 문자열, 리스트, 튜플이 대표적입니다.