[Python 기초] 파이썬 자료형 - 집합자료형(Set)
업데이트:
개요
1. 집합자료형 생성
set([])
또는 set("문자열")
로 만들 수 있다.
s1 = set([1,2,3])
s1
[Output] {1, 2, 3}
set(["문자열"])
과 set("문자열")
은 차이가 있음을 유의하자.
s2 = set(["Helloworld"])
s2
[Output] {'Helloworld'}
s3 = set("Helloworld")
s3
[Output] {'H', 'd', 'e', 'l', 'o', 'r', 'w'}
set("문자열")
의 경우 철자 하나씩 분리하고, 중복된 문자를 허용하지 않는다.
2. 집합자료형의 특징
s1 = set([1,2,3])
l1 = list(s1)
l1
[Output] [1, 2, 3]
print(type(s1))
print(type(l1))
[Output] <class 'set'>
<class 'list'>
s1[0]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-21-5e6c84907a45> in <module>()
----> 1 s1[0]
TypeError: 'set' object does not support indexing
리스트(list)는 순서가 존재하지만 집합(set)은 순서를 허용하지 않아 인덱싱이 불가능하다.
l1[0]
[Output] 1
- 집합자료형의 특징
- 중복을 허용하지 않음
- 순서가 없음
3. 집합자료형의 사용 : 교집합, 합집합, 차집합
굳이 집합자료형을 사용하는 이유는, 집합 내의 요소들의 교집합, 합집합, 차집합을 구할때 유용하게 사용되기 때문이다. 각각 기호로 구하는 방법과 함수를 이용한 방법이 존재한다.
- 교집합(intersection)
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
두 집합자료형 생성.
s1 & s2
[Output] {4, 5, 6}
&
기호를 이용해 공통요소 추출.
s1.intersection(s2)
[Output] {4, 5, 6}
intersection()
함수를 이용한 방법
- 합집합(Union)
s1 | s2
[Output] {1, 2, 3, 4, 5, 6, 7, 8, 9}
|
기호를 이용해 요소 합치기
집합자료형은 기본적으로 중복을 허용하지 않으므로, 중복된 요소 없이 합쳐준다.
s1.union(s2)
[Output] {1, 2, 3, 4, 5, 6, 7, 8, 9}
union()
함수를 이용한 방법.
- 차집합(Difference)
s1 - s2
[Output] {1, 2, 3}
-
기호를 이용해 s1에 포함된 s2의 요소 {4,5,6}
빼기
s1.difference(s2)
[Output] {1, 2, 3}
difference()
함수를 이용한 방법.
4. 관련 함수들
- 값 1개 추가하기(add)
s1 = set([1,2,3])
s1.add(4)
s1
[Output] {1, 2, 3, 4}
- 값 여러개 추가하기(update)
s1 = set([1,2,3])
s1.update([4,5,6])
s1
[Output] {1, 2, 3, 4, 5, 6}
- 특정값 제거하기(remove)
s1 = set([1,2,3])
s1.remove(2)
s1
[Output] {1, 3}
Reference
도서 [점프 투 파이썬] 를 공부하며 작성하였습니다.
댓글남기기