본문 바로가기
Python/Do it! 점프 투 파이썬

[Do it! 파이썬] 2-5. Set 자료형

by Couldi 2023. 9. 19.
반응형

23. 9. 19.

- Could -

 

이 글은 막연히 python을 공부해야하나 라는 불안감으로 python으로 프로그래밍을 입문하는 사람들을 위한 글입니다.
python을 시작하는 많은 분들이 보는 '점프 투 파이썬' 책을 중심으로 '필자의 주관'이 잔뜩 담긴 설명을 추가하여, 파이썬 공부에 흥미를 붙이고 책 완주 후의 계획을 수립할 수 있도록 쓰여졌습니다.
'점프 투 파이썬'은 wikidoc(https://wikidocs.net/book/1)으로 무료로도 확인 가능합니다.
1. 집합 자료형(set) & 생성하기
2. set의 활용

1. 집합 자료형(set) & 생성하기

Python에서 set은 고유한 값을 저장하는 데이터 구조이다. Set은 리스트와 유사하나 중복된 값을 허용하지 않으며, 순서가 없다는게 리스트와 가장 큰 차이점이다. 집합 내의 요소들은 순서 없이 저장되며, 중복된 요소는 자동으로 제거되는 것이 큰 특징이다.

 

set의 활용처

  1. 중복된 요소 제거
    Set은 중복된 값을 허용하지 않으므로, 중복된 요소를 간단히 제거하는데 사용할 수 있다.
  2. 수학적 연산
    Set은 수학적 집합 연산을 지원하기 위해 만들어졌기에, 합집합, 교집합, 차집합 등의 연산을 쉽게 할 수 있따.
  3. 순서가 필요없는 경우에도 사용하고, 해시 테이블의 일부로 사용하는 등의 사용도 있다.

생성하기

아래와 같은 방법으로 생성한다.

# 중괄호를 이용한 생성
my_set = {1, 2, 3, 4, 5}

# set 생성자를 이용한 생성
my_set = set([1, 2, 3, 4, 5])

 

2. Set의 활용

아래와 같이 활용한다.

# 요소 추가
my_set.add(6)

# 요소 제거
my_set.remove(3)

# 두 개의 집합 정의
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}

# 합집합(Union) 연산
union_result = set1.union(set2)  # 또는 union_result = set1 | set2
print("합집합:", union_result)

# 교집합(Intersection) 연산
intersection_result = set1.intersection(set2)  # 또는 intersection_result = set1 & set2
print("교집합:", intersection_result)

# 차집합(Difference) 연산
difference_result = set1.difference(set2)  # 또는 difference_result = set1 - set2
print("차집합(set1 - set2):", difference_result)

# 차집합(Difference) 연산 (반대 방향)
difference_result = set2.difference(set1)  # 또는 difference_result = set2 - set1
print("차집합(set2 - set1):", difference_result)

# 집합 크기 확인
size = len(my_set)

# 멤버십 검사
is_present = 5 in my_set

 

추가로, Python의 set은 순서가 없기 때문에 인덱스를 사용하여 요소에 접근할 수 없다. 만약 순서가 중요하거나 요소에 인덱스를 사용해야 하는 경우, 리스트나 튜플과 같은 다른 데이터 구조를 사용해야 한다.

반응형

댓글