TIL 35. python set(집합 자료형)

rahula·2021년 6월 10일
0

python

목록 보기
8/10
post-thumbnail

파이썬의 set에 대해 알아보겠습니다. 이 글은 책 점프 투 파이썬을 토대로 작성됐습니다.

set

set이란?

집합에 관련된 것들을 쉽게 처리하기 위한 자료형. 같은 데이터가 중복되어 들어가지 않고, 자료의 순서는 의미가 없다.

set("Helllllo")
# {'o', 'e', 'H', 'l'}

set의 특징은 2가지이다.

  1. 요소간의 중복을 허용하지 않는다. 만일 새로 저장하려고 하는 요소와 동일한 값의 요소가 존재한다면 새로운 요소가 이 전 요소를 치환(replace)합니다.

  2. 순서가 없다. 따라서 리스트나 튜플처럼 인덱싱을 이용해서 요소 값을 얻을 수 없다. 그러므로 for 문에서 읽어들일때 요소들이 순서대로 나오는게 아니라 무작위 순서대로 나옵니다.

set 생성하는 법

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)

Look Up

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
profile
백엔드 지망 대학생

0개의 댓글