Coding/Jump to Python

Python - 집합(set) 자료형 / unordered / 합집합 / 교집합 / add / remove / update 함수

빈그레 2023. 9. 8. 13:23

 

 


02-6 집합 자료형

 

 

 

 

 

집합 자료형은 어떻게 만들까?

 

s1 = set([1,2,3])  #집합 자료형 괄호 안에 list 입력
print (s1)

#출력
{1,2,3}​


집합 자료형은 위와같이 set 키워드를 사용하여 만들 수 있다. 위 예시는 list자료형을 set 자료형으로 만들어준 것이다.

리스트의 [ ]  괄호나 문자열의 따옴표와 같이 기호로 자료형 자체를 표현할 수 있는 다른 자료형들과 달리 set은 set이라는 키워드를 사용해야 한다.

 


set의 괄호 안에 문자열을 넣어주면 각 문자들을 분리하여 어떤 요소로 이루어져 있는지 하나씩만을 보여준다.
즉, 겹치는 것에 대하여는 다루지 않고 이름 그대로 '집합'을 나타내는 것이다.



 

 

 

집합 자료형의 특징
- 중복을 허용하지 않는다.

- 순서가 없다. (Unordered)
  : 리스트나 튜플은 순서가 있어 인덱싱을 통해 자료형의 값을 얻을 수 있지만, 
    set은 딕셔너리와 같이 순서가 없어서 인덱싱으로 값을 얻을 수 없다. 

    set을 인덱싱으로 접근하려면 아래와 같이 리스트나 튜플로 변환해야한다.
set을 list나 tuple로 변환하려면 set이 들어있는 변수를 list( ), tuple( )안에 넣어서 새로운 변수에 할당해주면 된다.

 

 

 

교집합 / 합집합 / 차집합

아래 두 집합의 교집합,합집합,차집합을 구해보자

 

 

- 교집합

-  '&' 기호로 교집합 구하기
set으로 표현된 변수 s1과 s2를 &하면 교집합이 출력된다.
&는 and를 의미하므로 s1그리고s2에 모두 존재하는 요소를 찾는 것이 교집합의 개념과 일치한다.

- intersection 함수로 교집합 구하기

intersection하고자하는 set 중 하나를 함수 파라미터로 넣고, 다른 set 하나에 함수를 적용시키면 교집합이 출력된다. set은 순서가 없기 때문에 s1,s2의 위치가 바뀌어도 동일한 값이 반환된다.

 

 

- 합집합

- '|'기호로 합집합 구하기

교집합에서 and 기호를 쓴 것과 비슷하게 합집합에서는 or의 기호은 '|'를 사용하여 구할 수 있다.

- union 함수로 합집합 구하기

 

 

 

- 차집합

- 빼기 기호(-)로 차집합 구하기

- difference 차집합 구하기

 

 

 

 


 

 


set 자료형 관련 함수

 

 

 

 

값 1개 추가하기 (add)
이미 만들어진 set 자료형에 값을 추가할 수 있다 
값을 1개만 추가할 때에는 아래와 같이 add함수 파라미터에 추가할 값을 넣고 집합 자료형에 함수를 적용한다.

 

 

값 여러개 추가하기 (update)


값을 여러개 추가할 때에는 add함수 말고 update함수를 사용해야 한다.

 

 

특정 값 제거하기 (remove)

특정 값을 제거하고 싶을 때에는 remove함수를 사용하여 함수 파라미터에 삭제하고자 하는 값을 넣어 집합 자료형에 적용시켜주면 된다.