set은 파이썬에서 제공하는 데이터 컬렉션 타입 중 하나로, 중복되지 않는 요소들의 집합을 나타내는 자료구조입니다. set은 가변(mutable)하며, 순서가 없기 때문에 인덱스로 요소에 접근할 수 없습니다.
set은 중괄호 {}를 사용하여 생성하며, 요소들은 쉼표로 구분하여 나열합니다. 예를 들어, my_set = {1, 2, 3}와 같이 생성할 수 있습니다. 또는 set() 생성자를 사용하여 빈 set을 생성할 수도 있습니다.
set의 주요 특징과 기능은 다음과 같습니다:
- 중복된 요소가 없다: set은 중복된 값을 허용하지 않습니다. 같은 값을 여러 번 추가해도 한 번만 저장됩니다.
- 순서가 없다: set은 요소의 순서를 보장하지 않습니다. 따라서 인덱스로 요소에 접근할 수 없고, 순서에 의존하는 연산은 사용할 수 없습니다.
- 가변성(mutable): set은 가변(mutable)하며, 요소를 추가하거나 제거할 수 있습니다.
- 집합 연산을 지원한다: set은 집합 연산을 지원하여 교집합, 합집합, 차집합 등의 연산을 쉽게 수행할 수 있습니다.
- 요소의 멤버십 테스트: 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 |