본문 바로가기
성장하기/Python

set

by 솔로 슈퍼스타 2023. 6. 15.
728x90

set은 파이썬에서 제공하는 데이터 컬렉션 타입 중 하나로, 중복되지 않는 요소들의 집합을 나타내는 자료구조입니다. set은 가변(mutable)하며, 순서가 없기 때문에 인덱스로 요소에 접근할 수 없습니다.

set은 중괄호 {}를 사용하여 생성하며, 요소들은 쉼표로 구분하여 나열합니다. 예를 들어, my_set = {1, 2, 3}와 같이 생성할 수 있습니다. 또는 set() 생성자를 사용하여 빈 set을 생성할 수도 있습니다.

set의 주요 특징과 기능은 다음과 같습니다:

  1. 중복된 요소가 없다: set은 중복된 값을 허용하지 않습니다. 같은 값을 여러 번 추가해도 한 번만 저장됩니다.
  2. 순서가 없다: set은 요소의 순서를 보장하지 않습니다. 따라서 인덱스로 요소에 접근할 수 없고, 순서에 의존하는 연산은 사용할 수 없습니다.
  3. 가변성(mutable): set은 가변(mutable)하며, 요소를 추가하거나 제거할 수 있습니다.
  4. 집합 연산을 지원한다: set은 집합 연산을 지원하여 교집합, 합집합, 차집합 등의 연산을 쉽게 수행할 수 있습니다.
  5. 요소의 멤버십 테스트: in 연산자를 사용하여 특정 요소가 set에 포함되어 있는지 여부를 확인할 수 있습니다.

다음은 set을 사용하는 예시 코드입니다:

my_set = {1, 2, 3}  # set 생성
print(my_set)  # 출력: {1, 2, 3}

my_set.add(4)  # 요소 추가
print(my_set)  # 출력: {1, 2, 3, 4}

my_set.remove(2)  # 요소 제거
print(my_set)  # 출력: {1, 3, 4}

print(len(my_set))  # 출력: 3

print(1 in my_set)  # 출력: True
print(5 in my_set)  # 출력: False

other_set = {3, 4, 5}

intersection = my_set.intersection(other_set)  # 교집합
print(intersection)  # 출력: {3, 4}

union = my_set.union(other_set)  # 합집합
print(union)  # 출력: {1, 3, 4, 5}

difference = my_set.difference(other_set)  # 차집합
print(difference)  # 출력: {1}

위의 예시에서 보듯이, set은 요소의 중복을 허용하지 않고, 유용한 집합 연산을 제공하여 다양한 용도로 활용할 수 있습니다.

 

update 메서드는 set에 다른 iterable 객체(리스트, 튜플, 세트 등)의 요소들을 추가하는 기능을 제공하는 메서드입니다. update 메서드를 호출하여 다른 iterable 객체의 요소를 set에 추가할 수 있습니다.

update 메서드의 사용법은 다음과 같습니다:

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set1.update(set2)
print(set1)

#출력
#{1, 2, 3, 4, 5}


위의 예시에서 set1은 {1, 2, 3}이고 set2는 {3, 4, 5}입니다. set1.update(set2)를 호출하면 set1에 set2의 요소들이 추가됩니다. 결과적으로 set1은 {1, 2, 3, 4, 5}가 됩니다.

update 메서드를 사용하여 여러 개의 set이나 다른 iterable 객체를 한 번에 set에 추가할 수도 있습니다. 예를 들어:

 

set1 = {1, 2, 3}
list1 = [3, 4, 5]
tuple1 = (5, 6, 7)
set1.update(list1, tuple1)

#출력
#{1, 2, 3, 4, 5, 6, 7}

update 메서드는 기존 set에 요소를 추가하므로, 중복된 요소는 추가되지 않습니다.

'성장하기 > Python' 카테고리의 다른 글

ord  (0) 2023.06.15
DFS(Depth-First Search)와 BFS(Breadth-First Search)  (0) 2023.06.15
permutations 과 combinations  (0) 2023.06.15
소수찾기와 에라토스테네스의 체  (0) 2023.06.15
cycle  (0) 2023.06.15