정처기 감자정처기 감자
Python자료구조

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

Python 튜플(tuple)

코딩Python
읽는데 8분 소요
처음 쓰인 날: 2026-04-09
마지막 수정일: 2026-09-25
조회수: —
선수학습(1개)
  • Python 자료형(int, float, str, tuple)

요약

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
코드 하이라이팅 중…
(100)은 튜플이 아닙니다
(100)은 수식에서 괄호를 쓴 것과 같아서 그냥 정수 100입니다. 요소가 한 개인 튜플은 (100,)처럼 끝에 쉼표를 붙여야 합니다. 이 규칙은 시험에서 함정으로 출제될 수 있습니다.

빈 튜플

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

python
코드 하이라이팅 중…

tuple() 함수로 변환

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

python
코드 하이라이팅 중…

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

python
코드 하이라이팅 중…

튜플 인덱싱

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

python
코드 하이라이팅 중…

음수 인덱스

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

python
코드 하이라이팅 중…
요소abcde
양수 인덱스01234
음수 인덱스-5-4-3-2-1
읽기만 가능하고 수정은 불가합니다
t[0]으로 값을 읽을 수는 있지만, t[0] = 100처럼 값을 바꾸려고 하면 TypeError가 발생합니다. 튜플은 변경 불가(immutable)이기 때문입니다.

튜플 슬라이싱

리스트 슬라이싱과 동일한 문법을 사용합니다. 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
코드 하이라이팅 중…
리스트의 append, pop, sort 등은 튜플에서 사용할 수 없습니다
append()나 pop()은 요소를 추가하거나 제거하는 메서드입니다. 튜플은 변경 불가이므로 이런 메서드가 없습니다. count()와 index()만 사용할 수 있습니다.

중첩 튜플

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

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)는 여러 값을 순서대로 묶어 저장하는 자료형입니다. 문자열, 리스트, 튜플이 대표적입니다. ↩


메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
후수학습(2개)
  • Python 언패킹과 다중 할당
  • 딕셔너리 (Dictionary)
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999