파이썬의 set에 대해 알아보겠습니다. 이 글은 책
점프 투 파이썬을 토대로 작성됐습니다.
집합에 관련된 것들을 쉽게 처리하기 위한 자료형. 같은 데이터가 중복되어 들어가지 않고, 자료의 순서는 의미가 없다.
set("Helllllo")
# {'o', 'e', 'H', 'l'}
set의 특징은 2가지이다.
요소간의 중복을 허용하지 않는다. 만일 새로 저장하려고 하는 요소와 동일한 값의 요소가 존재한다면 새로운 요소가 이 전 요소를 치환(replace)합니다.
순서가 없다. 따라서 리스트나 튜플처럼 인덱싱을 이용해서 요소 값을 얻을 수 없다. 그러므로 for 문에서 읽어들일때 요소들이 순서대로 나오는게 아니라 무작위 순서대로 나옵니다.
set을 생성하는 법은 일반적으로 2가지가 있습니다. 중괄호 { } 를 사용하는 방법과 set() 함수를 사용하는 방법 입니다.
일반적으로 새로운 set을 만드는 경우에 {}를 사용하고,
list를 set로 변환하고 싶은 경우에는 set() 함수를 사용한다.
교집합은 & 기호를 사용한다.
s1 = {1,2,3,4}
s2 = {2,4,6,8}
s1 & s2 # {2, 4}
합집합은 |기호 혹은 union메서드를 이용한다.
print(s1 | s2)
print(s1.union(s2))
여집합은 -기호 혹은 difference메서드를 이용한다.
print(s1 - s2)
print(s1.difference(s2))
요소를 더하고 싶을 땐 add 메서드를 이용한다.
len함수로 집합자료형의 길이를 구할 수 있다.
clear메서드로 안의 요소들을 모두 삭제할 수 있다.
update메서드로는 여러 개의 값을 한꺼번에 추가할 수 있다.
remove메서드로 특정 값을 제거할 수 있다.
my_set = set()
# add method
my_set.add(1)
my_set.add(2)
my_set.add(2)
print(my_set) # {1,2}
# len 함수
len(my_set) # 2
# discard method
my_set.discard(1) # {2}
# clear method
my_set.clear() # {}
# update method
my_set.update([1,2,3,4])
# remove method
my_set.remove(4)
Set에 어떠한 값이 이미 포함되어 있는지를 알아보는 것을 look up 이라고 합니다.
Set에서 look up을 하기 위해서는 in 키워드를 사용해야 합니다.
```python
my_set = {1, 2, 3}
if 1 in my_set:
print("1 is in the set")
> 1 is in the set
if 4 not in my_set:
print("4 is not in the set")
> 4 is not in the set