Python Tuple과 Set 완벽 이해하기
Tuple(튜플)과 Set(집합)은 Python에서 자주 사용하는 자료형이지만, 처음 배우는 사람에게는 List와 비슷하게 보여 헷갈리기 쉽습니다. 이번 글에서는 Tuple과 Set의 특징, 실제 코드 예제, 그리고 왜 List 대신 Tuple을 사용하는지까지 쉽게 알아보겠습니다.
설명
Python에는 여러 개의 데이터를 저장하는 자료형이 여러 종류 있습니다. 앞에서 List와 Dictionary를 배웠다면, 이번에는 Tuple(튜플) 과 Set(집합) 을 알아볼 차례입니다.
Tuple은 List와 비슷하지만 한 번 만든 데이터를 변경할 수 없다는 특징이 있으며, Set은 중복을 허용하지 않는 특별한 자료형입니다.
처음에는 “List가 있는데 왜 Tuple을 쓰지?”라는 의문이 들 수 있습니다. 하지만 각각의 자료형은 사용하는 목적이 다르며, 실제 개발에서는 상황에 맞게 적절한 자료형을 선택하는 것이 중요합니다.
Tuple(튜플)이란?
Tuple은 여러 개의 데이터를 순서대로 저장하는 자료형입니다.
겉보기에는 List와 매우 비슷하지만 가장 큰 차이점은 생성한 이후에는 데이터를 변경할 수 없다는 것입니다.
Tuple은 소괄호(())를 사용합니다.
예를 들어
point = (10, 20)
colors = ("red", "green", "blue")
처럼 작성합니다.
Tuple의 특징
Tuple은 다음과 같은 특징을 가지고 있습니다.
- 여러 개의 데이터를 저장할 수 있다.
- 저장된 순서가 유지된다.
- 인덱스를 사용할 수 있다.
- 데이터를 수정하거나 삭제할 수 없다.
- 데이터를 실수로 변경하는 것을 방지할 수 있다.
Tuple 사용 예제
다음은 Tuple을 만드는 간단한 예제입니다.
fruits = ("사과", "바나나", "포도")
첫 번째 데이터를 출력하려면
print(fruits[0])
실행 결과
사과
Tuple도 List처럼 인덱스를 사용할 수 있습니다.

Tuple은 왜 사용할까?
초보자들이 가장 많이 하는 질문입니다.
“List도 여러 개 저장할 수 있는데 왜 Tuple을 사용할까요?”
가장 큰 이유는 데이터를 변경하면 안 되는 경우가 있기 때문입니다.
예를 들어
- 지도의 좌표
- 주민등록번호 형식
- RGB 색상 값
- 요일 정보
- 월 이름
이처럼 프로그램이 실행되는 동안 값이 변하면 안 되는 데이터는 Tuple로 저장하는 것이 좋습니다.
예를 들어 좌표를 저장한다고 가정해 보겠습니다.
position = (120, 350)
이 좌표는 프로그램에서 기준 위치라면 변경되지 않는 것이 안전합니다.
Tuple을 사용하면 실수로 값을 수정하는 일을 예방할 수 있습니다.
또한 Tuple은 List보다 메모리를 조금 더 효율적으로 사용하며, 읽기 전용 데이터에 적합합니다.
Tuple과 List의 차이
| 구분 | List | Tuple |
|---|---|---|
| 기호 | [] | () |
| 데이터 수정 | 가능 | 불가능 |
| 데이터 추가 | 가능 | 불가능 |
| 데이터 삭제 | 가능 | 불가능 |
| 사용 목적 | 변경 가능한 데이터 | 변경되지 않는 데이터 |
간단히 정리하면,
- 계속 변경되는 데이터 → List
- 고정된 데이터 → Tuple
을 사용하는 것이 일반적입니다.
Set(집합)이란?
Set은 중복을 허용하지 않는 자료형입니다.
같은 값이 여러 번 들어와도 하나만 저장됩니다.
중괄호({})를 사용합니다.
예를 들어
numbers = {1, 2, 3, 4}
처럼 작성합니다.
Set의 특징
Set은 다음과 같은 특징을 가지고 있습니다.
- 중복 데이터를 자동으로 제거한다.
- 데이터의 순서를 보장하지 않는다.
- 빠르게 데이터를 검색할 수 있다.
- 집합 연산이 가능하다.
Set 사용 예제
다음과 같이 같은 값을 여러 번 넣어 보겠습니다.
numbers = {1, 2, 2, 3, 3, 3, 4}
print(numbers)
실행 결과
{1, 2, 3, 4}
중복된 숫자는 자동으로 제거됩니다.
문자열도 Set으로 만들 수 있을까?
물론 가능합니다.
예를 들어
fruits = {"사과", "바나나", "사과", "포도"}
print(fruits)
실행 결과
{"사과", "바나나", "포도"}
같은 “사과”가 두 번 들어갔지만 하나만 저장됩니다.
Set은 언제 사용할까?
Set은 중복을 제거해야 하는 상황에서 매우 유용합니다.
예를 들어
- 회원 ID 중복 확인
- 태그 목록
- 로또 번호
- 중복 없는 이메일 목록
- 방문한 페이지 기록
처럼 같은 데이터가 여러 번 저장되면 안 되는 경우에 자주 사용됩니다.

Set과 List의 차이
| 구분 | List | Set |
|---|---|---|
| 순서 유지 | O | X |
| 중복 허용 | O | X |
| 인덱스 사용 | O | X |
| 사용 목적 | 순서가 중요한 데이터 | 중복 제거 |
Tuple과 Set은 언제 선택해야 할까?
| 상황 | 추천 자료형 |
|---|---|
| 학생 이름 목록 | List |
| 회원 정보 | Dictionary |
| GPS 좌표 | Tuple |
| RGB 색상 값 | Tuple |
| 로또 번호 | Set |
| 중복 없는 태그 목록 | Set |
각 자료형은 서로 경쟁 관계가 아니라, 저장하려는 데이터의 성격에 따라 선택하는 도구라고 생각하면 이해하기 쉽습니다.
자주 묻는 질문(FAQ)
Q1. Tuple은 정말 수정이 불가능한가요?
네.
Tuple은 한 번 생성하면 값을 추가하거나 삭제하거나 수정할 수 없습니다. 그래서 변경되면 안 되는 데이터를 저장할 때 적합합니다.
Q2. List 대신 Tuple을 사용하면 어떤 장점이 있나요?
Tuple은 데이터를 변경할 수 없기 때문에 실수로 값이 수정되는 것을 방지할 수 있습니다.
또한 읽기 전용 데이터에 적합하며, 일반적으로 List보다 메모리 사용이 조금 더 효율적입니다.
Q3. Set은 왜 순서가 없나요?
Set은 순서보다 중복 제거와 빠른 검색에 초점을 맞춘 자료형입니다.
따라서 데이터를 저장한 순서대로 출력된다고 보장할 수 없습니다.
Q4. Set에서 같은 값을 여러 번 저장하면 어떻게 되나요?
자동으로 하나만 저장됩니다.
예를 들어
{1, 1, 1, 2, 2, 3}
은
{1, 2, 3}
으로 저장됩니다.
마무리
Tuple과 Set은 List나 Dictionary만큼 자주 사용되지는 않지만, 각각의 역할이 분명한 자료형입니다.
Tuple은 변경되면 안 되는 데이터를 안전하게 저장할 때 사용하며, Set은 중복 없는 데이터를 관리할 때 가장 적합합니다.
Python에서는 어떤 자료형이 가장 좋은 것이 아니라, 상황에 맞는 자료형을 선택하는 것이 중요합니다. List, Dictionary, Tuple, Set의 특징을 이해하고 적절히 활용한다면 더욱 효율적이고 읽기 쉬운 프로그램을 작성할 수 있습니다.