[파이썬 기초] 튜플, 세트, 딕셔너리 완벽 정리
파이썬(Python) 프로그래밍을 공부할 때 리스트만큼이나 자주 쓰이는 핵심 컬렉션 자료형이 있습니다. 바로 튜플(Tuple), 세트(Set), 딕셔너리(Dictionary)인데요. 각각의 자료형은 데이터를 저장하고 관리하는 고유한 방식과 뚜렷한 장단점을 가지고 있습니다.

이번 포스팅에서는 한국방송통신대학교 컴퓨터과학과 강의 자료를 바탕으로 파이썬 필수 컬렉션 3가지의 핵심 개념부터 다빈출(多頻出) 연산자, 메소드, 그리고 컴프리헨션 활용법까지 한눈에 보기 좋게 요약해 드립니다. 포스팅 하단에는 실력 점검을 위한 기출문제 5개와 상세한 해설도 준비되어 있으니, 파이썬 마스터를 향해 함께 달려봅시다.
핵심 내용 요약
1. 튜플 (Tuple)
- 개념: 데이터를 순서대로 저장하는 불변(Immutable) 시퀀스 자료형입니다.
- 특징:
- 리스트와 기능적으로 유사하지만, 생성 후 원소를 변경할 수 없어 의도치 않은 데이터 수정을 방지합니다.
- 리스트보다 메모리 효율이 좋고 접근 속도가 빠릅니다.
- 소괄호 ()를 사용하며, 괄호를 생략하고 콤마 ,로만 나열해도 튜플로 인식됩니다. (예: temp = 27, "summer")
- 주의: 원소가 1개인 튜플을 만들 때는 반드시 뒤에 콤마를 붙여야 합니다. (예: (30,))
- 연산 및 메소드: 수정이 불가능하므로 .sort(), .append() 등은 사용할 수 없으며, 대신 내장함수 sorted(tuple)나 + 연산자를 사용해 새로운 튜플을 만들어야 합니다. 슬라이싱은 가능하나 컴프리헨션은 불가능합니다(제너레이터 표현식으로 변환됨).
2. 세트 (Set)
- 개념: 중복을 허용하지 않고, 순서가 없는 변경 가능(Mutable) 컬렉션입니다. 수학의 '집합' 개념을 구현했습니다.
- 특징: 중복된 값을 자동으로 제거해주므로 데이터 정제에 유용하며, 중괄호 {}나 set() 함수로 생성합니다.
- 연산 및 메소드:
- 순서가 없으므로 인덱싱과 슬라이싱을 지원하지 않습니다.
- 산술 연산자(+, *)는 사용할 수 없습니다.
- 비교 연산자(<, <=, >, >=)는 부분집합이나 상위집합 여부를 판별하는 의미로 변경됩니다.
- 주요 메소드로 add(), remove(), intersection()(교집합), union()(합집합), difference()(차집합) 등이 있습니다.
- 세트 컴프리헨션을 지원합니다. (예: {x for x in list if x % 2 == 0})
3. 딕셔너리 (Dictionary)
- 개념: 키(Key)와 값(Value)의 쌍으로 데이터를 저장하는 매핑(Mapping) 자료형입니다.
- 특징: 키를 통해 값을 매우 빠르게 검색할 수 있습니다. 키(Key)는 불변 객체만 허용되며 중복될 수 없고, 값(Value)은 어떤 타입이든 저장할 수 있습니다.
- 연산 및 메소드:
- 순서가 없으므로 슬라이싱이 불가능합니다.
- 멤버십 연산자 in, not in은 키(Key)의 존재 여부를 확인합니다.
- keys()는 모든 키를, values()는 모든 값을, items()는 (키, 값)의 튜플 쌍을 반환합니다.
- get(key) 메소드는 존재하지 않는 키를 조회할 때 에러 대신 None을 반환하여 안전합니다.
- 딕셔너리 컴프리헨션을 통해 키와 값을 동시에 조작할 수 있습니다.
기출문제 5개
1. 다음 중 파이썬의 '튜플(tuple)'에 대한 설명으로 올바르지 않은 것은?
① 데이터를 순서 있게 저장하는 불변(immutable) 시퀀스이다.
② 리스트보다 메모리 효율과 접근 속도 면에서 유리하다.
③ t = (10)과 같이 선언하면 원소가 1개인 튜플이 생성된다.
④ 값의 수정이 불가능하므로 .sort() 메소드를 지원하지 않는다.
2. 다음 파이썬 코드의 실행 결과로 올바른 것은?
set_a = {1, 2, 3}
set_b = {3, 2, 1}
print(set_a == set_b)
① True
② False
③ SyntaxError
④ TypeError
3. 파이썬 세트(set)의 특징과 연산에 대한 설명으로 옳은 것을 모두 고른 것은?
가. 세트는 순서가 없기 때문에 슬라이싱 구문을 사용할 수 없다.
나. 세트에서 + 연산자를 사용하면 두 세트의 합집합을 구할 수 있다.
다. len(s) 함수를 세트에 사용하면 중복이 제거된 후의 원소 개수를 반환한다.
① 가
② 가, 나
③ 가, 다
④ 가, 나, 다
4. 다음 파이썬 딕셔너리 코드의 실행 결과로 올바른 것은?
Python
data = {"apple": 1000, "banana": 2000, "cherry": 3000}
print("banana" in data, 2000 in data)
① True True
② True False
③ False True
④ False False
5. 아래의 pc_parts 딕셔너리에서 가격이 300,000원 이하인 항목만 골라 새로운 딕셔너리를 생성하고자 합니다. 빈칸에 들어갈 딕셔너리 컴프리헨션 코드로 올바른 것은?
Python
pc_parts = {"CPU": 950000, "RAM": 120000, "SSD": 195000}
# 빈칸
print(under_30k)
① under_30k = {k: v for k, v in pc_parts if v <= 300000}
② under_30k = {k: v for k, v in pc_parts.items() if v <= 300000}
③ under_30k = {k, v for k, v in pc_parts.items() if v <= 300000}
④ under_30k = [k for k, v in pc_parts.items() if v <= 300000]
기출문제 초간단 핵심 해설
- 1. 정답: ③
- 핵심: 원소가 1개인 튜플은 반드시 t = (10,)처럼 뒤에 쉼표(,)를 붙여야 합니다. 쉼표가 없으면 튜플이 아닌 일반 정수(int)로 인식됩니다.
- 2. 정답: ①
- 핵심: 세트(set)는 순서가 없는 자료형입니다. 따라서 원소의 구성만 같다면 배치된 순서가 달라도 == 연산 결과는 True입니다.
- 3. 정답: ③ (가, 다)
- 가 (참): 순서가 없으므로 대괄호를 쓰는 인덱싱/슬라이싱이 불가능합니다.
- 나 (거짓): 세트의 합집합은 +가 아니라 | 연산자나 .union()을 써야 합니다.
- 다 (참): 세트는 중복을 자동으로 제거하므로, len()은 중복 없는 실제 원소 개수만 샙니다.
- 4. 정답: ②
- 핵심: 딕셔너리에서 in 연산자는 '키(Key)'만 검색합니다. "banana"는 키라서 True이지만, 2000은 값(Value)이라서 False가 나옵니다.
- 5. 정답: ②
- 핵심: 딕셔너리의 키와 값을 모두 꺼내 쓰려면 반드시 .items()가 필요하고, 딕셔너리 형태를 유지하려면 중괄호 안에 k: v 형태를 갖춰야 합니다.
혼자 만들면서 공부하는 파이썬 - 프로그래밍 언어 | 쿠팡
쿠팡에서 혼자 만들면서 공부하는 파이썬 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 프로그래밍 언어 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'IT 이야기' 카테고리의 다른 글
| 방송통신대 파이썬프로그래밍기초 :: 10강. 객체지향 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.28 |
|---|---|
| 방송통신대 파이썬프로그래밍기초::8강 콜렉션1 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.24 |
| 방송통신대 파이썬프로그래밍기초::7강 함수 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.23 |
| 방송통신대 파이썬프로그래밍기초 :: 6강 반복 구조 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.22 |
| 방송통신대 파이썬프로그래밍기초::5강 선택 구조 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.21 |
댓글