No Operation

블로그 이미지

NOP(No Operation)

컴맹이의 티스토리 블로그입니다.

파이썬 초급10 (집합 - 자료형)

Python 프로그래밍/Python 초급 2020. 2. 16. 01:20

파이썬 집합 자료형


1. 집합


집합(set)은 우리가 중학교 때 배웠던 집합에 관련된 것을 다루기 위해 만들어진 자료형입니다.

 

세트 자료형은 두 가지 특징을 가집니다.

1. 순서가 없다(Unorderd)

2. 중복될 수 없다.

 

1. 집합 선언 법


파이썬 IDLE를 켜 [Ctrl+N]으로 새로운 창을 만들어줍니다.

1
2
3
4
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우  시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
cs

세트 자료형은 "{ }" 중괄호로 요소를 둘러싸거나 set함수를 이용해 선언이 가능합니다.

 

실행해 보겠습니다.

프로젝트 폴더에 "8 세트"로 저장해 줍니다.

 

 

순서 없이 출력되는 걸 확인할 수 있습니다.

세트는 순서가 없다는 1번째 특성 때문인데

순서가 없기 때문에 인덱싱도 불가능합니다.

 

2. 집합 연산


집합 자료형을 만든 이유는 집합을 연 산하기 위해서 만들어진 자료형입니다.

그럼 지금부터 연산 법과 결과 값을 알아보겠습니다.

 

1. 합집합

1
2
3
4
5
6
7
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우  시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
c = set("Hon")
print(c|b) #c집합과 b집합의 합집합을 출력합니다.
print(c.union(b)) #c집합과 b집합의 합집합을 출력하는 다른 방법입니다.
cs

 

실행하면 합집합이 나옵니다.

 


2. 차집합

1
2
3
4
5
6
7
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우  시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
c = set("Hon")
print(b-c) #b집합에서 c집합의 차집합을 출력합니다.
print(b.difference(c)) #b집합에서 c집합의 차집합을 출력하는 다른 방법입니다.
cs

 

실행하면 합집합이 나옵니다.

 


3. 교집합

1
2
3
4
5
6
7
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우  시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
c = set("Hon")
print(b&c) #b집합과 c집합의 교집합을 출력합니다.
print(b.intersection(c)) #b집합과 c집합의 교집합을 출력하는 다른 방법입니다.
cs

 

실행하면 교집합이 나옵니다.

 


4. 대칭차집합

대칭차집합이란 합집합에서 교집합을 뺀 것입니다.

1
2
3
4
5
6
7
a = {'Hello','world','Python'} #"Hello","World","Python"로 3개를 세트로 만들어 줍니다.
b = set('Python') #set함수르 만들 경우  시퀀스 자료형을 1개씩 뽑아서 만들어 줍니다.
print(a) #순서없이 랜덤하게 "Hello","World","Python" 출력
print(b) #순서없이 랜덤하게 "P","y","t","h","o","n" 출력
c = set("Chon")
print(b^c) #b집합과 c집합의 대칭차집합을 출력합니다.
print(set.symmetric_difference(b,c)) #b집합과 c집합의 대칭차집합을 출력하는 다른 방법입니다.
cs

 

실행하면 대칭차집합이 나옵니다.

 

3. 집합 관련 함수


설명은 코드와 주석으로 대체하겠습니다.

 

세트에 값 추가하는 법 (add, update)

1
2
3
4
5
6
a = {1, 2, 3, 4} #1~4으로 집합을 만든다.
b = {5, 6, 7, 8} #5~8으로 집합을 만든다.
print(a) #a를 출력한다.
a.add(5) #a집합에 5를 추가한다.
a.update('a','b','c') #add와 다르게 update는 값을 여러개 넣을수 있다.
print(a) #a를 출력한다.
Colored by Color Scripter
cs

세트에 값 삭제하는 법 (remove, discard)

1
2
3
4
5
6
a = {1, 2, 3, 4} #1~4으로 집합을 만든다.
b = {5, 6, 7, 8} #5~8으로 집합을 만든다.
print(a) #a를 출력한다.
a.remove(3) #a집합에 3를 삭제한다.
a.discrad(5) #a집합에 5를 삭제한다. 다만 remove는 값이 없다면 오류가 나지만 dircrad는 오류가 생가지 않는다.
print(a) #a를 출력한다.
Colored by Color Scripter
cs

세트에서 임의의 요소 삭제하는 법 (pop)

1
2
3
4
5
a = {1, 2, 3, 4} #1~4으로 집합을 만든다.
b = {5, 6, 7, 8} #5~8으로 집합을 만든다.
print(a) #a를 출력한다.
a.pop() #a에 첫번째 값을 뽑고 값을 반환한다. pop(x)를 하면 x에 위치에 있는 값을 반환한다.
print(a) #a에서 1이 빠진걸 확인 할수.
Colored by Color Scripter
cs

세트의 길이 구하는 법 (len)

1
2
3
4
a = {1, 2, 3, 4} #1~4으로 집합을 만든다.
b = {5, 6, 7, 8} #5~8으로 집합을 만든다.
print(a) #a를 출력한다.
print(len(a)) #a집합의 길이를 반환한다.
cs

집합 자료형을 시작적으로 노트에 그림을 그려보시면 이해가 더 쉬울 겁니다.

※요약

더보기

집합 자료형은 우리가 중학교 때 배운 집합이다.

여러 가지 연산을 통해 원하는 데이터로 가공할 수 있다.


※숙제

더보기

집합 자료형을 선언해보고

드 모르간의 법칙을 구현해 주세요.

오늘은 파이썬의 집합 자료형을 배워보았습니다.

다음 시간에는 불 자료형에 대해서 배워볼 것입니다.

'Python 프로그래밍 > Python 초급' 카테고리의 다른 글

파이썬 초급11 (불 - 자료형)  (0) 2020.02.16
파이썬 초급9 (딕셔너리 - 자료형)  (0) 2020.02.15
파이썬 초급8 (시퀀스 - 자료형)  (0) 2020.02.14
파이썬 초급7 (튜플 - 자료형)  (0) 2020.02.06
파이썬 초급6 (리스트 - 자료형)  (0) 2020.01.29
Posted by NOP(No Operation)
블로그 이미지

컴맹이의 티스토리 블로그입니다.

by NOP(No Operation)

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • 파이썬 시퀸스
  • sql map
  • Python강의
  • 파이썬 if문
  • 파이썬 집합
  • 파이썬 elif문
  • 파이썬 흐름제어
  • python elif
  • 파이썬 else문
  • 파이썬 break
  • Python문법
  • 파이썬
  • Python Bool
  • python while
  • python continue
  • python else
  • Python Sequence
  • Python Tuple
  • python break
  • 파이썬 사용자에게 입력
  • 파이썬 input
  • Python
  • 파이썬 if 논리연산자
  • 파이썬 while문
  • 파이썬 불
  • python input
  • Python강좌
  • sql_map
  • Python variable
  • python set

글 보관함

«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

링크

카테고리

분류 전체보기 (23)
WebHacking (1)
SQL_MAP분석 (1)
Python 프로그래밍 (22)
Python 시작하기 전 (2)
Python 초급 (11)
Python 중급 (9)
Python 고급 (0)
리버싱 (0)
ZIP파일 분석 (0)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
NOP(No Operation)'s Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

No Operation

컴맹이의 티스토리 블로그입니다.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (23)
    • WebHacking (1)
      • SQL_MAP분석 (1)
    • Python 프로그래밍 (22)
      • Python 시작하기 전 (2)
      • Python 초급 (11)
      • Python 중급 (9)
      • Python 고급 (0)
    • 리버싱 (0)
      • ZIP파일 분석 (0)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바