1 집합(set)
집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로 순서가 없고 중복을 허용하지 않는게 특징이다.
따라서 인덱싱, 슬라이싱이 불가능하다.
사용법은 아래와 같이 set(( ))또는 set([ ]) 또는 set({ }) 대괄호에 key 값을 입력하지않고 value만 입력 한다. {1,5,7}
>>> set1 = set([1,2,3])
>>> type(set1)
<class 'set'>
>>> set2 = set((1,2,3))
>>> type(set2)
<class 'set'>
>>> type(set({1,4,6,7}))
<class 'set'>
>>> type({1,2,35})
<class 'set'>
중복을 허용하지 않는다. 따라서 다음과 같이 중복되는 값을 빼고 저장한다.
>>> set3 = set('abbbbbbc')
>>> set3
{'c', 'b', 'a'}
2 교집합
연산자 & 와 메서드 A.intersection(B) 를 사용한다.
&
>>> A = set(('a',1,4,'c')) # 정수 4
>>> B = set((1,'c','4',2)) # 문자열 4
>>> A & B
{1, 'c'} # 정수,문자,실수를 구분
위와 같이 문자열형태의 4와 정수형태의 4를 다른 형태로 구분한다.
A.intersection(B)
>>> A.intersection(B)
{1, 'c'}
3 합집합
연산자 | 와 A.union(B)를 사용한다.
|
>>> A|B
{1, 'c', 'a', 4, 2, '4'}
A.union(B)
>>> A.union(B)
{1, 'c', 'a', 4, 2, '4'}
4 차집합
연산자 - 와 A.diffence(B)를 사용한다. 차집합은 집합의 순서가 데이터를 결정한다.
-
>>> A-B
{'a', 4}
>>> B-A
{2, '4'}
A.difference(B) , B.difference(A)
>>> A.difference(B)
{'a', 4}
>>> B.difference(A)
{2, '4'}
5 데이터 추가, 수정, 삭제
데이터 추가 : add() , update()
한개 추가
>>> A.add('g')
>>> A
{1, 4, 'g', 'c', 'a'}
여러개 추가
update((1,2,2,3,4))
update([1,45,7,6])
데이터 삭제 : remove() , discard() 모두삭제 : clear()
>>> A.remove(1)
>>> A
{'a', 4, 'c'}
>>> A.discard('a')
>>> A
{4, 'c'}
> A.clear()
>>> A
set()
데이터 수정 : A.difference_update(B) - 차집합을 원본 데이터로 저장
>>> A = set(('a',1,4,'c'))
>>> B = set((1,'c','4',2))
>>> A.difference_update(B)
>>> A
{4, 'a'}
데이터 수정 : A.intersection_update(B) - 교집합을 원본 데이터로 저장
>>> A = set(('a',1,4,'c'))
>>> B = set((1,'c','4',2))
>>> A.intersection_update(B)
>>> A
{1, 'c'}
5 데이터 비교
A.isdisjoint(B)
두집합에 공통원소가 없니? 두집합의 원소가 모두 달라야 True
bool 값으로 반환 True,False # if 문에 잘 사용된다.
>>> A = set(('a',1,4,'c'))
>>> B = set((1,'c','4',2))
>>> C = set((3,5,'d','e'))
>>> A.isdisjoint(B)
False
>>> A.isdisjoint(C)
True
A.issubset(B)
A가 B에 포함되니?
bool 값으로 반환 True,False # if 문에 잘 사용된다.
>>> D = set(('a',1,3,5,4,'c','d','e'))
>>> A.issubset(D)
True
>>> A.issubset(B)
False
'Python' 카테고리의 다른 글
[Python 기초] 파이썬 if __name__ == "__main__" 란? (0) | 2021.04.08 |
---|---|
[Python 기초] 파이썬 - 쓰레드 (Thread) (0) | 2021.04.08 |
[Python 기초] 파이썬 random 모듈 - choice() , randint() , randrange() , sample() , shuffle() (0) | 2021.04.07 |
[Python 기초] 파이썬 클래스 - 클래스 멤버(static) 와 접근제어자(public , private , getter , setter) (0) | 2021.04.05 |
[Python 기초] 파이썬 클래스 - 오버라이딩 (overriding) (0) | 2021.04.05 |
댓글