Language/파이썬
[파이썬] set - 집합 자료형
땅어
2020. 8. 6. 16:48
728x90
300x250
파이썬엔 set이라는 자료형이 있다. set은 영어로 "집합"을 뜻하는데 수학적으로도 알 수 있듯이 특징은 크게 다음의 두 가지이다.
-
순서가 없다.
-
중복을 허락하지 않는다.
1번 특징) list의 경우 for문을 사용해 원소에 접근하면 모든 원소들을 순차적으로 탐색할 수 있다. 하지만 set은 다르다. 동일하게 for문을 사용하여 원소에 접근하면 어떤 것이 먼저 나올지 모른다.
2번 특징) 집합은 중복원소를 허용하지 않는다. 따라서 set에 중복된 원소를 삽입하면 자동으로 중복제거가 된다. 즉 모든 값들은 unique하다.
set의 선언
list나 dict는 다음과 같이 선언한다.
l = [] # list 자료형
d = {} # dict 자료형
set도 dict와 똑같은 {}를 사용한다. 따라서 중괄호만으로는 set을 선언할 수 없고, set 생성자를 따로 사용해야 한다.
>>> s = {}
>>> type(s)
<class 'dict'>
>>> s = set()
>>> type(s)
<class 'set'>
>>> s
set()
set의 원소 추가
add 메소드를 이용한다.
>>> s = set()
>>> s.add(1)
>>> s.add(2)
>>> s
{1, 2}
set의 원소 제거
remove 메소드를 이용한다.
>>> k = {1, 2, 3}
>>> k.remove(3)
>>> k
{1, 2}
>>> k.remove(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 3
단 위와 같이 remove를 사용할 때 없는 값을 지우려 하면 keyerror가 난다. 이는 list에서 사용하는 remove와 동일하다. 이러한 에러를 방지하기 위해서는 discard 메소드를 사용하면 된다.
>>> k = {1, 2, 3}
>>> k.discard(3)
>>> k
{1, 2}
>>> k.discard(3)
>>> k
{1, 2}
위와 같이 discard를 사용하면 없는 값을 지우려해도 keyerror가 나지 않는다.
출처 : https://wikidocs.net/16044
위키독스
온라인 책을 제작 공유하는 플랫폼 서비스
wikidocs.net
728x90
300x250