Stay Hungry Stay Foolish

알고리즘

[파이썬] set, 집합 함수

dev스카이 2024. 10. 29. 18:52

set(집합)

set 는 중복을 허용하지 않는 변경 가능한 데이터 구조로, 수학에서의 집합과 유사한 개념을 제공한다. 순서가 없고, 각 요소는 고유해야 하며, 요소 간의 빠른 검색, 추가, 삭제를 지원한다.

데이터의 고유성을 보장하고, 중복된 값을 처리하거나 집합 연산이 필요한 경우에 유용하게 사용된다.

 

set의 주요 특징

  • 중복 허용 안함 : 한 집합 내에서 동일한 값이 중복될 수 없다.
  • 순서 없음 : 저장된 순서가 유지되지 않으며, 요소를 인덱스로 접근할 수 없다.
  • 변경 가능 : 집합은 새로운 요소를 추가하거나 삭제할 수 있다.
  • 빠른 연산 : 해시 테이블 기반으로, 원소의 추가/제거/검색이 평균적으로 매우 빠르다.

 

set 생성 방법

1️⃣ 방법 1 : 중괄호 {}를 사용

my_set = {1, 2, 3, 4, 5}

 

 

2️⃣ 방법 2 : set() 함수를 사용

my_set = set([1, 2, 3, 4, 5])

 

 

주요 연산

1️⃣ 요소 추가

my_set.add(6)
  • add() 메서드를 사용해 집합에 요소를 추가할 수 있다.

 

2️⃣ 요소 삭제 

my_set.remove(4) 
my_set.discard(10)
  • remove()와 discard() 메서드를 사용해 요소를 제거한다.
  • remove()는 존재하지 않는 요소를 삭제하려 하면 오류가 발생하지만, discard()는 존재하지 않아도 오류가 발생하지 않습니다.

 

3️⃣모든 요소 제거

my_set.clear()
  • clear() 메서드로 집합의 모든 요소를 제거할 수 있습니다.

 

 

집합 연산

파이썬의 set 는 수학적 집합 연산을 지원한다.

 

1️⃣ 합집합 (| 또는 union())

set1 = {1, 2, 3}
set2 = {3, 4, 5}
result = set1 | set2  # {1, 2, 3, 4, 5}

 

2️⃣ 교집합 (& 또는 intersection())

result = set1 & set2  # {3}

 

3️⃣ 차집합 (- 또는 difference())

result = set1 - set2  # {1, 2}

 

4️⃣ 대칭차집합 (^ 또는 symmetric_difference())

result = set1 ^ set2  # {1, 2, 4, 5}
  • 두 집합 간에 서로 없는 요소만 포함.

 

요소 검사

집합 안에 특정 요소가 있는지 확인할 수 있다.

if 3 in set1:
    print("3이 set1에 있습니다.")

 

 

중복 제거

리스트나 다른 자료형에서 중복을 제거할 때도 set을 사용할 수 있다.

my_list = [1, 2, 2, 3, 3, 4]
unique_items = set(my_list)  # {1, 2, 3, 4}

 


 

'알고리즘' 카테고리의 다른 글

[파이썬] lambda(람다) 함수  (0) 2024.10.30
[파이썬] enumerate() 함수  (0) 2024.10.29
[파이썬] zip() 함수  (0) 2024.10.25
[파이썬] 딕셔너리(Dictionary), dict()  (0) 2024.10.25
[파이썬] set() (집합 함수)  (0) 2024.10.24