본문 바로가기
Python/Python 문법

Python set 집합 기초 [ 메서드, 연산 기능소개 ]

by lchit 2019. 12. 22.

 

 

 

set 이란?

set은 수학의 집합과 비슷한 형태로 데이터의 순서가 없어서 

set에 입력되는 데이터의 순서는 실제로 set에 저장되는 데이터의 순서와 다르다.  
어떤 데이터가 먼저 출력될지 알 수 없고 중복되는 데이터의 입력을 허용하지 않는다.  
딕셔너리처럼 {}를 사용해서 데이터를 감싸주지만 key가 존재하지 않고 value만 존재한다

 

 

 

 

1. set의 생성

(1) 생성자의 인자로 리스트나 튜플을 받아 생성할 수 있다.

 

 

튜플 혹은 리스트를 set 으로 감싼다고 생각하면 된다.

 

 

 

(2) 중복되는 데이터는 자동 제거된다.

 

 

 


 

2. set 메서드

(1) add( ) - 추가

add() 메서드로 set에 단일 데이터를 추가한다 

 

 


(2) update( ) - 추가

update( )메서드로 여러 데이터를 한 번에 추가할 수 있다.

 

 

추가 과정에서도 중복되는 데이터는 자동 삭제된다.

 


(3) [remove( ), discard( ), clear( )] - 삭제

 

remove( ), discard( )로 단일데이터 삭제

clear( )로 전체 삭제

 

 

remove를 이용한 삭제
discard 를 이용한 삭제

 

단일 데이터를 제거하는 두 메서드는 

같아보이지만 다른 점이 있다.

 

remove 메서드는 삭제하려는 값이

존재하지 않으면 오류를 내지만 

 

discard 메서드는 삭제하려는 값이

없어도 오류가 나지 않는다

 

 

clear를 이용한 전체 삭제

 


 

(4) copy - 복사

 

copy()를 활용한 set 복사 

 


3. set 연산자

 

(1) 합집합

 

 

사용법 = setA.union(setB)

. union이 귀찮다면 논리 연산기호를 사용하자

합집합은 or 다 하나라도 True이면 True이다.

 

 

.union을 간단하게 표현할 수 있다.

 


(2) 교집합

 

 

and 연산 기호를 쓰지 않는다면

s.intersection(s2)이다.


(3) 차집합

 

 

- 연산 기호를 쓰지 않는다면

s.difference(s2)이다.

 


(4) 대칭 차집합

(합집합-교집합)

 

 

^ 기호는 xor이다 

두 값이 다를 경우만 참이다 

합집합에서 값이 같은 교집합은

빠지게 된다.

 

^ 기호를 쓰지 않는다면

s.symmetric_difference(s2)이다