[프로그래밍 기초][파이썬]20. 집합 자료형이란?
2019. 8. 18. 19:51
반응형
안녕하세요 HiCreate입니다!! 벌써 20번째 파이썬 글이네요
이번 포스팅에서는 집합 자료형에 대해서 알아볼텐데요. 수학에서 말하는 그 집합이라고 보시면 편할 것 같습니다.
집합은 주어진 성질을 만족시키는 원소의 모임인데요 (원소는 집합을 구성하는 겁니다.)
집합은 영어로 set(세트)라고 합니다. 그래서 파이썬에서도 set()으로 집합을 만듭니다.
변수명 = set() 형식으로 말이죠.
집합의 성질 중 하나는 대표성이죠. 즉, 중복되는 수는 1개로 표현합니다.
예를 들어서 [1,2,3,1,2,3]이 있다면 집합에서는 {1,2,3} 이렇게만 나타낸다는 것이죠.
파이썬에서도 자동적으로 대표성을 띄게 만들어줍니다.
set은 변경가능, frozenset은 변경이 불가능한 자료형입니다.
그러나 집합 자체는 변경 불가능 자료형입니다. 그래서 원소는 해쉬가 가능한 변경 불가능 자료형만 받을 수 있죠.(리스트는 안 되고, 튜플은 됩니다.)
다음은 명령어입니다.
코딩 | 같은 표현 | 의미 |
len(S) | 원소의 개수 | |
x in S | x가 S의 원소인가?(맞으면 True) | |
x not in S | x가 S의 원소가 아닌가?(아니어야 True) | |
S.issubset(T) | S <= T | S가 T의 부분집합인가? |
S.issuperset(T) | S >= T | S가 T를 포함하는가? |
S.union(T) | S | T (S shft+\ T) | S와 T의 합집합 |
S.intersection(T) | S & T | S와 T의 교집합 |
S.difference(T) | S - T | S와 T의 차집합 |
S.symmetric_difference(T) | S ^ T | S와 T의 합집합에서 교집합을 제외(배타집합) |
S.copy() | S를 얕은 복사 |
이외에 set에만 적용되는 연산들이 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
>>> S = set([1,2,3,4,5,6,7,8,9])
>>> T = set([5,6,7,8,10,20,30,40])
>>> S.update(T) # 합집합을 S에 저장
>>> S
{1, 2, 3, 4, 5, 6, 7, 8, 9, 40, 10, 20, 30}
>>> S |= T # 같은거
>>> S
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40}
>>> S.intersection_update(T) # 교집합을 S에 저장
>>> S
{5, 6, 7, 8, 40, 10, 20, 30}
>>> S &= T # 같은거
>>> S
{5, 6, 7, 8, 40, 10, 20, 30}
>>> S = set([1,2,3,4,5,6,7,8,9])
>>> S.difference_update(T) # 차집합을 저장
>>> S-=T # 같은거
>>> S
{1, 2, 3, 4, 9}
>>> S = set([1,2,3,4,5,6,7,8,9])
>>> S.symmetric_difference_update(T) # 배타집합을 저장
>>> S
{1, 2, 3, 4, 40, 9, 10, 20, 30}
>>> S^=T # 같은거
>>> S
{1, 2, 3, 4, 6, 5, 9, 7, 8}
>>> S.add(0) # 원소 추가
>>> S
{0, 1, 2, 3, 4, 6, 5, 9, 7, 8}
>>> S.remove(9) #원소제거
>>> S.discard(1) # 원소가 있으면 제거
>>> S
{0, 2, 3, 4, 6, 5, 7, 8}
>>> S.pop() # 가장 최근에 저장된 원소 제거
0
>>> S
{2, 3, 4, 6, 5, 7, 8}
>>> S.clear() # 집합
>>> S
set()
|
cs |
그럼 이번 포스팅을 마치도록 하겠습니다. 감사합니다.
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[프로그래밍 기초][파이썬] 22.자료형의 변환 (0) | 2021.08.31 |
---|---|
[프로그래밍 기초][파이썬]21.객체 복사 (2) | 2021.08.29 |
[프로그래밍 기초][파이썬]19. 사전 객체 사용하기 -2(메쏘드) (0) | 2019.08.18 |
[프로그래밍 기초][파이썬]18. 사전 객체 사용하기 -1 (0) | 2019.08.18 |
[프로그래밍 기초][파이썬]17. 객체 복사 (0) | 2019.03.31 |