파이썬 언어 기초 프로그래밍 - 데이터 구조(Date Structures)_세트(set)

LSH·2023년 5월 17일
0

교육 정보

  • 교육 명: 경기미래기술학교 AI 교육
  • 교육 기간: 2023.05.08 ~ 2023.10.31
  • 오늘의 커리큘럼: 빅데이터 기초 활용 역량 강화 (5/10~6/9) - 파이썬 프로그래밍
  • 강사: 조미정 강사님 (빅데이터, 머신러닝, 인공지능)
  • 강의 계획:
    1. 파이썬 언어 기초 프로그래밍
    2. 크롤링 - 데이터 분석을 위한 데이터 수집(파이썬으로 진행)
    3. 탐색적 데이터 분석, 분석 실습
    - 분석은 파이썬만으로는 할 수 없으므로 분석 라이브러리/시각화 라이브러리를 통해 분석
    4. 통계기반 데이터 분석
    5. 미니프로젝트

1. 세트 (set)

1.1 세트의 개념

  • 여러 데이터가 순서없이 저장되어있는 자료형
  • 순서가 없으므로 중복값이 허용되지 않음

1.2 CRUD

1.2.1 C (Create)

{} 기호를 사용하여 생성

items = {"item1", "item2", "item3"}
print (type(items),items)
#
#결과
<class 'set'> {'item2', 'item3', 'item1'}

set()함수로 생성

items = set([1,2,3])
print (items)
#
# 결과
{1, 2, 3}

빈세트 생성

  • new_set={}하면 같은 괄호쓰는 dict타입이 생성되어버림
my_dict = {}
print (my_dict, type(my_dict))
#
# 결과
{} <class 'dict'>
  • set()함수 사용
my_set = set()
print (my_set, type(my_set))
#
# 결과
set() <class 'set'>
  • 중복값을 입력하면 알아서 예외처리
nums = {1,2,2,3,1,2,3,1,2}
print(nums)
#
# 결과
{1, 2, 3}

1.2.2 R (Read)

  • index로 요소를 받아올 수 없음 (순서가 없으므로)
items = {1,2,3}
print(items[0])
#
# 결과
TypeError: 'set' object is not subscriptable

1.2.3 U (Update)

요소 추가

  • set.add(추가할 요소)
my_set = {1,2,3,4,5}
my_set.add(6)
print (my_set)
#
# 결과
{1, 2, 3, 4, 5, 6}

요소 추가

  • set.update(추가할 요소 1, 2, 3...)
  • 순서가 없기 때문에 List처럼 위치 지정이 필요없음
my_set = {0, 1, 2, 3, 4}
my_set.update({4, 5, 6})
print(my_set)
#
# 결과
{0, 1, 2, 3, 4, 5, 6}

1.2.4 D (Delete)

요소 삭제

  • set.remove(제거할 요소)
    • 하나의 값만 지울 수 있음
    • 존재하지 않는 요소를 삭제하려 하면 에러 발생
my_set = {1,2,3,4,5}
my_set.remove(5)
print (my_set)
#
# 결과
{1, 2, 3, 4}
my_set = {1,2,3,4,5}
my_set.remove(6)
#
# 결과
KeyError: 6
  • set.discard(제거할 요소)
    - 존재하지 않는 요소를 지우려 해도 에러를 발생시키지 않음
my_set = {1,2,3,4,5}
my_set.discard(6)
print(my_set)
#
# 결과
{1,2,3,4,5}

전체 요소 삭제

- set.clear()
my_set = {1,2,3,4,5}
print(my_set)
my_set.clear()
print(my_set)
#
# 결과
{1,2,3,4,5}
set() # 빈 세트가 남음
  • 세트 자체를 메모리에서 지우려면 del 사용
my_set = {1,2,3,4,5}
del my_set
print (my_set)
#
# 결과
NameError: name 'my_set' is not defined
# 해당 변수가 정의되지 않았다고 오류 뜸 

집합연산

합집합

두 세트의 중복되는 원소를 제거하고 합한 세트를 리턴

  • set.union(set1, set2)
  • set1.union(set2)
  • set1 | set2

교집합

두 세트에 공통으로 포함된 요소만을 포함한 세트를 리턴

  • set.intersection(set1, set2)
  • set1.intersection(set2)
  • set1 & set2

차집합

한 세트의 요소에서 다른 세트에 포함된 원소를 제거하고 리턴
앞에오는 세트를 기준으로 함

  • set.difference(set1, set2)
  • set1.difference(set2)
  • set1 - set2
profile
:D

0개의 댓글