튜플(Tuple)과 집합(Set): 리스트의 친척들을 소개합니다!!!

Day 9

튜플(Tuple)과 집합(Set): 리스트의 친척들을 소개합니다

데이터를 더 안전하게, 혹은 더 유니크하게 다루는 방법

안녕하세요! 8일차에 문자열 함수로 텍스트 요리를 즐기셨나요? 오늘은 파이썬의 핵심 자료구조 3형제 중 리스트를 제외한 나머지 두 명, 튜플집합을 만나볼 시간입니다. 겉보기엔 리스트와 비슷해 보이지만, 각자 가진 초능력이 다르답니다!

코딩

1. 변하지 않는 가치, 튜플(Tuple)

튜플은 리스트와 거의 똑같지만, 딱 하나 결정적인 차이가 있습니다. "한 번 만들면 절대 내용을 바꿀 수 없다(Immutable)"는 점이죠. 그래서 데이터의 '안전'이 최우선일 때 사용합니다.

  • 리스트는 소괄호 ( )를 사용합니다.
  • 데이터를 수정하려고 하면 에러가 발생하여 데이터를 보호합니다.
  • 리스트보다 속도가 조금 더 빠릅니다.
# 튜플 생성 및 특징
my_tuple = (1, 2, 3)
location = (37.5665, 126.9780) # 좌표처럼 변하면 안 되는 값에 딱!

# my_tuple[0] = 10  <- 에러 발생! (내용 수정 불가)

print("서울 위도:", location[0]) # 인덱싱은 가능
print("데이터 개수:", len(location))

2. 중복은 거부한다! 집합(Set)

수학 시간의 집합을 떠올려보세요. 파이썬의 집합은 중복을 허용하지 않고 순서가 없는 바구니입니다.

집합의 주요 특징:
1. { } 중괄호를 사용합니다.
2. 리스트에 중복된 값이 아무리 많아도 집합으로 만들면 하나만 남습니다.
3. 순서가 없어서 인덱싱([0] 등)을 쓸 수 없습니다.
# 중복 제거 마법
fruits = {"apple", "banana", "apple", "orange", "banana"}
print(fruits) # 결과: {'apple', 'orange', 'banana'} (중복 자동 삭제!)

# 새로운 값 추가/삭제
fruits.add("grape")
fruits.remove("orange")

3. 집합의 꽃: 교집합, 합집합, 차집합

여러 개의 데이터 뭉치를 비교할 때 집합은 엄청난 힘을 발휘합니다.

python_class = {"철수", "영희", "민수"}
java_class = {"민수", "길동", "수지"}

# 교집합: 두 수업을 모두 듣는 학생
print(python_class & java_class) # 결과: {'민수'}

# 합집합: 전체 학생 목록
print(python_class | java_class) # 결과: {'철수', '영희', '민수', '길동', '수지'}

# 차집합: 파이썬만 듣는 학생
print(python_class - java_class) # 결과: {'철수', '영희'}

💡 9일차 궁금증 해결 (Q&A)

Q1. 리스트, 튜플, 집합 중 무엇을 써야 할지 너무 헷갈려요!

구분리스트(List)튜플(Tuple)집합(Set)
기호[ ]( ){ }
특징자유로운 수정수정 불가(안전)중복 제거/연산

Q2. 리스트에서 중복된 값을 가장 빨리 지우는 방법은 무엇인가요?

A2. 집합(Set)을 빌려오면 됩니다! list(set(나의_리스트)) 처럼 리스트를 집합으로 바꿨다가 다시 리스트로 돌리면 한 줄 만에 중복이 사라집니다.

Q3. 튜플을 만들 때 my_t = (5) 라고 했더니 숫자로 인식돼요.

A3. 아, 정말 예리하시네요! 값이 하나인 튜플을 만들 때는 반드시 쉼표를 붙여야 합니다. my_t = (5,) 라고 써야 파이썬이 "아, 이건 튜플이구나!"라고 알아듣습니다.

오늘의 미션 🚩

"중복 제거기 프로젝트"
1. colors = ["red", "blue", "red", "green", "blue", "yellow"] 리스트를 만드세요.
2. 위 리스트에서 중복된 색상을 제거한 뒤,
3. "purple"을 추가하고 다시 리스트로 변환하여 출력해보세요!

댓글

이 블로그의 인기 게시물

초보 파이썬 따라하기: 7가지 실전 프로젝트로 매일 코딩 습관 만들기

초보자를 위한 Step-by-Step: 리스트와 인덱싱으로 값을 추가/삭제해 Python 기초 잡기

조건문(if, elif, else) 배우기