set( ) 이란?
- set은 수학에서의 집합과 비슷하다.
- 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형
- 순서가 없고, 집합에서 unique한 값을 가진다.
- mutable 객체
Python에서의 집합은 고유한 요소의 모음이다. 집합의 목적은 단일 변수에 여러 항목을 저장하는 것이다.
중괄호를 사용하는 것은 dictionary와 비슷하지만 key가 없고 갑(value)만 존재한다.
>>> s = {3, 5, 7}
>>> s
{3, 5, 7}
>>> type(s)
<class 'set'>
집합 자료형은 아래와 같이 set 키워드를 사용해 만들 수 있다.
s1 = set([1,2,3])
print(s1)
# result : {1,2,3}
set( ) 괄호 안에 리스트를 입력하여 만들 수 있고, 문자열을 입력해 만들 수도 있다.
s2 = set("hello")
print(s2)
# result : {'o', 'h', 'l', 'e'}
s = set("331")
print(s)
# result : {'1', '3'}
set( ) 특징
- 중복 허용 X (중복을 없애준다)
- 순서 X
리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만, set 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트 or 튜플로 변환한 후 해야 한다.
s1 = set([1,2,3])
l1 = list(s1)
print(l1) # result : [1,2,3]
print(l1[0]) # result : 1
t1 = tuple(s1)
print(t1) # result : (1,2,3)
print(t1[0]) # result : 1
SET 함수 명령어
- 추가 : add( )
- 여러개의 값 추가 : update( )
- set 안의 값 제거 1 : remove -- set 집합 안에 원소가 없는 경우 KeyError 발생
- set 안의 값 제거 2 : discard -- set 집합 안에 원소가 없는 경우에도 KeyError 발생 X
- 집합의 요소 수 찾기 : len( )
- 집합의 모든 요소 제거 : clear( )
합집합, 교집합, 차집합
교집합, 합집합, 차집합을 구할 때 set 자료형이 유용하게 쓰인다.
1. 합집합
두 집합의 모든 요소를 포함
union( ) 또는 | 연산자 사용
setA = {1,2,3,4,5}
setB = {4,5,6,7,8}
setC = setA.union(setB)
# setC = setA | setB
print(setC)
# result : {1, 2, 3, 4, 5, 6, 7, 8}
2. 교집합
두 집합의 공통인 요소만 포함
intersection( ) 또는 & 연산자 사용
setA = {1,2,3,4,5}
setB = {4,5,6,7,8}
setD = setA.intersection(setB)
# setD = setA & setB
print(setD)
# result : {4, 5}
3. 차집합
한 집합에는 있지만 다른 집합에는 없는 요소 포함
difference( ) 메소드 또는 - 연산자 사용
이전 합집합과 교집합과는 다르게 연산의 순서가 존재한다.
setA = {1,2,3,4,5}
setB = {4,5,6,7,8}
setE = setA.difference(setB)
setF = setB - setA
print(setE)
print(setF)
# result(setE) : {1, 2, 3}
# result(setF) : {8, 6, 7}
4. 대칭 차집합
공통된 요소만 제외하고 모든 요소를 포함하는 집합
symmetric_difference( ) 메소드 또는 ^ 연산자 사용
setA = {1,2,3,4,5}
setB = {4,5,6,7,8}
setG = setA.symmetric_difference(setB)
# setG = setA^setB
print(setG)
# result : {1, 2, 3, 6, 7, 8}
REFERENCE
18. set(집합)
## 1. set(집합) - set은 수학에서 이야기하는 집합과 비슷합니다. - 순서가 없고, 집합안에서는 unique한 값을 가집니다. - 그리고 mutable 객체입니다.…
wikidocs.net
https://velog.io/@insutance/Python-set-%EC%9D%B4%EB%9E%80
[Python] set() 이란
python 'set( ) 함수' 정리
velog.io
Python 내장 함수 : set 함수 사용하기 - 아이공
Python 내장 함수 : set 함수 사용하기 - 아이공 설명에 앞서 정제된 표현이 되어있는 아래 2개의 사이트를 방문하시는 것을 추천드립니다. 특히 1번이 아주 자세히 설명되어 있습니다. 최대한 친절
aigong.tistory.com
'Language > Python' 카테고리의 다른 글
[Python] 배열의 인덱스와 값을 같이 출력할 수 있는 enumerate (0) | 2024.11.27 |
---|---|
[Python] 2차원 배열 회전 : zip( ), 인덱스를 고려한 회전 (3) | 2024.10.10 |
[Python] 문자열(String), 리스트(list) 변환 (0) | 2024.10.08 |
[Python] 파이썬에서 두 변수 값 교환 (0) | 2024.08.07 |
[Python] 2차원 배열 입력 받기 (0) | 2024.08.07 |