본문 바로가기
두두 IT/파이썬

[PYTHON 3-3] 중복 없는 셋(Set) & 자료구조

by DoDo's 2026. 4. 15.
반응형

📚 중복 없는 셋(Set) & 자료구조 총정리(변환/언패킹)

도입부 오늘은 파이썬 자료구조 시리즈의 마지막! 수학 시간에 배웠던 '집합'을 그대로 코드로 옮겨놓은 **셋(Set)**과, 지금까지 배운 자료구조들을 자유자재로 다루는 활용법을 총정리해 보겠습니다.

1. 셋 (Set): 중복을 거부하는 자유로운 영혼

셋은 수학의 '집합'과 똑같습니다. 딱 2가지만 기억하세요.

  1. 순서가 없다: 그래서 인덱싱(s[0])이나 슬라이싱을 할 수 없습니다.
  2. 중복을 허락하지 않는다: 똑같은 값을 여러 번 넣어도 알아서 하나만 남깁니다.
  • 만들기: 딕셔너리처럼 중괄호 { }를 쓰지만, 키 없이 값만 콤마로 나열합니다.
s1 = {1, 2, 3, 3, 3, 4}
print(s1)  # {1, 2, 3, 4} (중복된 3이 하나로 합쳐짐!)

# 빈 Set 만들기 (주의!)
# s = {} 이렇게 하면 빈 딕셔너리가 만들어집니다.
s2 = set() # 이렇게 해야 빈 셋이 만들어집니다.

💡 셋(Set)의 주요 메소드와 집합 연산

  • add(값): 값 1개 추가 / update(리스트): 여러 개 한 번에 추가
  • remove(값): 콕 찝어서 값 삭제
  • 집합 연산자: 교집합(&), 합집합(|), 차집합(-) 기호를 그대로 사용할 수 있습니다!

2. 자료구조 대입 (Unpacking, 언패킹)

리스트나 튜플 안에 들어있는 여러 개의 값을 각각의 변수에 한 번에 쪼개서 넣는 마법 같은 기능입니다. 변수 개수와 데이터 개수가 딱 맞아야 합니다.

a, b, c = [10, 20, 30]  # a에는 10, b에는 20, c에는 30이 들어갑니다!

3. 자료구조 변환 함수 (Type Casting)

지금까지 배운 자료구조들은 서로 자유롭게 변신할 수 있습니다.

  • list(데이터): 리스트로 변환
  • tuple(데이터): 튜플로 변환
  • set(데이터): 셋으로 변환

🔥 실전 초강력 꿀팁! (데이터 중복 제거하기) [1, 2, 2, 3, 3, 3] 이라는 리스트에서 중복을 없애고 싶을 땐 어떻게 할까요? 복잡하게 코드를 짤 필요 없이, 잠깐 Set으로 변신시켰다가 다시 List로 되돌리면 됩니다! l = list(set([1, 2, 2, 3, 3, 3])) ➔ 결과: [1, 2, 3]

 

*참고: 리스트, 튜플, 딕셔너리, 셋 처럼 안에 여러 값을 품고 있어서 반복문(for문)으로 하나씩 꺼내볼 수 있는 객체들을 묶어서 **'Iterable(반복 가능한 객체)'*이라고 부릅니다.


📝 3편 복습 퀴즈

Q1. 셋(Set) 자료구조의 가장 큰 특징 두 가지로 올바르게 짝지어진 것은?

① 순서가 있고, 중복을 허용한다. ② 순서가 없고, 중복을 허용한다. ③ 순서가 있고, 중복을 허용하지 않는다. ④ 순서가 없고, 중복을 허용하지 않는다.

 

Q2. 아무런 데이터도 들어있지 않은 '빈 셋(Empty Set)'을 만들기 위한 올바른 코드는?

① s = {} ② s = [] ③ s = set() ④ s = empty()

 

Q3. 셋(Set)에서 두 집합의 공통된 원소만 뽑아내는 '교집합'을 구하려고 할 때 사용하는 연산자 기호는?

① | ② & ③ - ④ +

 

Q4. 리스트나 튜플의 원소들을 여러 개의 개별 변수에 한 번에 나누어 담는 파이썬의 편리한 문법을 무엇이라고 하나요?

(예: a, b, c = [1, 2, 3])

① 패킹 (Packing) ② 슬라이싱 (Slicing) ③ 형변환 (Type Casting) ④ 대입 / 언패킹 (Unpacking)

 

Q5. 어떤 리스트에 들어있는 엄청나게 많은 데이터 중에서 '중복된 값'을 가장 빠르고 쉽게 싹 제거하는 방법으로 알맞은 함수 조합은?

① list(tuple(리스트)) ② dict(list(리스트)) ③ list(set(리스트)) ④ set(tuple(리스트))

 

 

 

💡 정답 확인: Q1: ④ / Q2: ③ ({}는 빈 딕셔너리를 만듭니다) / Q3: ② / Q4: ④ / Q5: ③ (Set의 중복 제거 특성을 이용한 대표적인 스킬입니다)

반응형