[Python] Ch3 - part 3. 셋

2021. 3. 27. 17:05· Language/Python
목차
  1. 셋 (set)
  2. 멤버십 테스트
  3. 셋 관련 연산
  4. Summary

셋 (set)

  • 값이 없는 딕셔너리와 같은 구조 (즉, 키만있는 딕셔너리)
  • 딕셔너리와 마찬가지로 키는 중복 불가
  • 집합과 같은 개념

셋 생성하기

set() 함수 사용

>>> s1 = set()
>>> s1
set()

{}를 사용하는 방법

>>> s2 = {1,2,3,3,4}
>>> s2
{1, 2, 3, 4}

값이 중복될 경우에는 하나의 값만 출력됨

 

{}를 이용하여 빈 셋을 만들 수 없음

>>> s = {}
>>> type(s)
<class 'dict'>
>>> s = set()
>>> type(s)
<class 'set'>


set()함수를 이용하면 리스트, 문자열, 튜플, 딕셔너리로부터 중복을 제거한 셋 생성

>>> set('apple')
{'l', 'p', 'a', 'e'}
>>> set(['apple', 'banana', 'cherry', 'apple', 'cat', 'dog','dog'])
{'cherry', 'cat', 'apple', 'dog', 'banana'}
>>> set(('a','b','a','c','d'))
{'d', 'a', 'b', 'c'}
>>> set({'apple':'사과','banana':'바나나','cherry':'체리'})
{'cherry', 'banana', 'apple'}
  • 중복을 허용하지 않는다.
  • 순서가 없다(Unordered)

멤버십 테스트

in 연산자를 사용

일반적으로 사용되는 셋의 용도

>>> s = {1,2,3,4}
>>> 1 in s
True
>>> 5 in s
False

 

셋 관련 연산

교집합 구하기

>>> {1,2,3} & {2,3,4}
{2, 3}
>>> {1,2,3}.intersection({2,3,4,})
{2, 3}

 

합집합 구하기

>>> {1,2,3} | {2,3,4}
{1, 2, 3, 4}
>>> {1,2,3,}.union({2,3,4})
{1, 2, 3, 4}

 

차집합 구하기

>>> {1,2,3} - {2,3,4}
{1}
>>> {1,2,3}.difference({2,3,4})
{1}

 

대칭 차집합 구하기

>>> {1,2,3} ^ {2,3,4}
{1, 4}
>>> {1,2,3}.symmetric_difference({2,3,4})
{1, 4}

 

부분 집합 판별하기

>>> {1,2}.issubset({1,2,3})
True
>>> {1,2,3}.issubset({1,2})
False
>>> {1,2,3}.issuperset({1,2})
True
>>> {1,2}.issuperset({1,2,3})
False
>>> {1,2,3} >= {1,2}
True
>>> {1,2} >= {1,2,3}
False
>>> {1,2} >= {1,2}
True

(셋에서의 크기 비교 연산자는 서브셋 또는 슈퍼셋을 판별하는 연산자로 쓰임)

 

Summary

  1. 셋은 딕셔너리에서 값이 없이 키만 제공되는 형태의 데이터 타입으로 수학에서의 집합과 거의 같다.
  2. 셋은 중복된 값의 데이터가 저장되지 않는다.
  3. 셋의 항목으로 저장될 수 있는 값은 불변 타입의 값이다.
  4. 비어 있는 셋은 set()함수를 이용하여 생성하며, 하나 이상의 셋은 {}안에 콤마(,)로 구분하여 여러 항목의 값을 넣어 생성할 수 있다.
  5. set() 함수는 다른 시퀸스 구조의 타입을 셋으로 변환한다.
  6. 셋을 다루기 위한 여러 연산자와 메서드 및 함수가 제공되며, 특히 크기 비교 연산자는 서브셋/슈퍼셋을 판별하는 연산으로 사용이 된다. 

'Language > Python' 카테고리의 다른 글

[Python] Ch4 - part 2. 반복문  (0) 2021.03.29
[Python] Ch4 - part 1. 조건문  (0) 2021.03.28
[Python] Ch3 - part 2. 딕셔너리  (0) 2021.03.26
[Python] Ch3 - part 1.리스트와 튜플  (0) 2021.03.25
[Python] Ch2 - part 4. 논리 (Boolean)  (0) 2021.03.25
  1. 셋 (set)
  2. 멤버십 테스트
  3. 셋 관련 연산
  4. Summary
'Language/Python' 카테고리의 다른 글
  • [Python] Ch4 - part 2. 반복문
  • [Python] Ch4 - part 1. 조건문
  • [Python] Ch3 - part 2. 딕셔너리
  • [Python] Ch3 - part 1.리스트와 튜플
White Han
White Han
Software Developer
sudo apt-get happinessSoftware Developer
White Han
sudo apt-get happiness
White Han
전체
오늘
어제
  • 분류 전체보기 (195)
    • Language (47)
      • Java (17)
      • Java-Weekly-study (12)
      • Python (18)
    • BackEnd (11)
      • Server (2)
      • Spring (3)
      • Spring Security (0)
      • JDBC (1)
      • NodeJS (2)
      • LINUX (3)
    • DataBase (10)
      • MySQL (5)
      • MongoDB (4)
      • Oracle (1)
    • Infra (4)
      • Docker (4)
    • CS (38)
      • OS (38)
      • 아키텍쳐 (0)
    • Problem Solving (79)
      • Algorithm (8)
      • CT-Java (30)
      • CT-Python (41)
    • IDE (1)
      • eclipse (1)
      • vscode (0)
    • Etc. (3)
      • Git (1)
      • TDD, Refactor, CleanCode (1)
      • Conference (1)
    • 기록 (2)
      • 후기 (1)
      • 프로젝트 회고록 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

  • 방문해 주셔서 감사합니다.

인기 글

태그

  • 사무용 모니터
  • 사무용 모니터 추천
  • 싸피
  • 자바스크립트 식별자
  • 알파스캔 AOC 24B1X
  • OS
  • 프로세스
  • 24인치 모니터 추천
  • 자바스크립트 개념
  • 자바 this
  • 운영체제 구조
  • 싸피 후기
  • java
  • 자바 super
  • Java Inheritance
  • javascript identifier
  • SSAFY
  • 싸피 합격
  • 운영체제 역할
  • AOC 24B1X
  • javascript
  • 싸피8기
  • 자바스크립스 식별자 종류
  • 프로세서
  • Java this
  • 알파스캔 모니터
  • 운영체제
  • Java super
  • 자바스크립트
  • 자바 inheritance

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
White Han
[Python] Ch3 - part 3. 셋
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.