파이썬 기초 정리(자료형-집합)

집합 자료형 (Sets)

순서x, 중복x, 추가 삭제 o

선언

a = set()
print(a, type(a)) # set() <class 'set'>

b = set([1,2,3,4])
c = set([1,2,'pen', 'cap', 'plate']) #서로 다른 자료형 가능

d = {'a', 'b', 'c', 'd'} # key가 없이 리스트를 나열하면 딕셔너리가 아닌 set
e = {42, 'f', (1,2,3), 3.14}

print(b, type(b)) # {1,2,3,4}
print(c, type(c)) # { 1,2, 'pen', 'cap', 'plate'}
print(d, type(d)) # {'a', 'b', 'c', 'd'}
print(e, type(e)) # {42, 'f', (1,2,3), 3.14}

선언을 할 때 중복된 원소는 파이선 인터프리터가 자동으로 제거한다.

형 변환

  1. 집합 => 튜플
t = tuple(b) 
print(t, type(t)) # (1,2,3,4) <class 'tuple'>
print(t[1:3]) # (2,3)

튜플로 형 변환을 하였으니 slice 가능

  1. 집합 => 리스트
l = list(C)
print(l, type(l)) # [1,2,'pen', 'cap', 'plate'] <class 'list'>

길이

print(len(e)) # 4

집합의 활용 ( 사기.. )

자바스크립트에도 이런거 있으면 좋겠다.

const set1 = {1,2,3,4,5,6}
const set2 = {4,5,6,7,8,9}
  1. 교집합
print('set1 & set2', set1 & set2) # {4,5,6}
print('set1 & set2', set1.intersection(set2)) # {4,5,6}
  1. 합집합
print('set1 | set2', set1 | set2) # {1,2,3,4,5,6,7,8,9}
print('set1 | set2', set1.union(set2)) # {1,2,3,4,5,6,7,8,9}
  1. 차집합
print('set1 - set2', set1 - set2) # {1,2,3}
print('set1 - set2', set1.difference(set2)) # {1,2,3}

중복되는 원소인 4,5,6을 제거하고 1,2,3만 남았다.

  1. 중복 원소 확인
print(set1.isdisjoint(set2)) # False

False면 중복원소가 있는거고, True면 없다

  1. 부분집합 관계 확인
print(set1.issubet(set2)) # set1이 set2의 부분집합 ? False

집합의 추가와 삭제

a = {1,2,3,4}
  1. 추가
a.add(5)
print(a) # {1,2,3,4,5}

집합의 끝에 추가된다 ? No 그렇게 보이는거다 ( 순서 없어 )

  1. 삭제
a.remove(3)
print(a) # {1,2,4,5}
a.remove(7) # 에러발생

remove 함수는 없는 원소를 제거하려고 하면 예외 발생

a.discard(4)
print(a) # {1,2,5}
a.discard(7) # 에러발생 하지 않음
print(a) # {1,2,5}

discard 함수는 없는 원소를 제거하려고 해도 예외 발생하지 않음

a.clear()
print(a) # set()

clear 함수는 전체 원소를 제거한다. ( 참고 - claer 함수는 리스트 에서도 사용 가능하다 )


Written by@[HongDongUk]
공부한 것을 소소하게 적는 블로그.

GitHubFacebook