
Python Set 알아보기
# chapter03-6
# 집합(set) 특징
# 집합(set) 자료형(순서x, 중복x, 수정o, 삭제o)
# 선언
a = set()
b = set([1, 2, 3, 4])
c = set([1, 4, 5, 6])
d = set([1, 2, 'pen', 'cap', 'plate'])
e = {'foo', 'bar', 'baz', 'foo', 'qux'} # 중복 'foo' 제거됨
f = {42, 'foo', (1, 2, 3), 3.14159} # set은 변경 불가능한 자료형만 포함 가능
print('a - ', type(a), a, 2 in a) # <class 'set'> set() False
print('b - ', type(b), b, 2 in b) # <class 'set'> {1,2,3,4} True
print('c - ', type(c), c) # {1,4,5,6}
print('d - ', type(d), d) # {1,2,'pen','cap','plate'}
print('e - ', type(e), e) # {'bar','foo','baz','qux'}
print('f - ', type(f), f) # {42,'foo',(1,2,3),3.14159}
print()
# 튜플 변환
t = tuple(b)
print('t - ', type(t), t) # <class 'tuple'> (1,2,3,4)
print('t - ', t[0], t[1:3]) # 1 (2,3)
print()
# 리스트 변환
l1 = list(c)
l2 = list(e)
print('l1 - ', l1) # [1,4,5,6]
print('l2 - ', l2) # ['bar','foo','baz','qux'] (순서는 보장X)
print()
# 길이
print(len(a)) # 0
print(len(b)) # 4
print(len(c)) # 4
print(len(d)) # 5
print(len(e)) # 4
print(len(f)) # 4
print()
# 집합 자료형 활용
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print('s1 & s2 : ', s1 & s2) # {4,5,6}
print('s1 & s2 :', s1.intersection(s2)) # {4,5,6}
print('s1 | s2 : ', s1 | s2) # {1,2,3,4,5,6,7,8,9}
print('s1 | s2 :', s1.union(s2)) # {1,2,3,4,5,6,7,8,9}
print('s1 - s2 : ', s1 - s2) # {1,2,3}
print('s1 | s2 : ', s1.difference(s2)) # {1,2,3}
print()
# 중복 원소 확인 / True or False
print('s1 & s2 : ', s1.intersection(s2)) # {4,5,6}
# 부분집합 확인
print('subset : ', s1.issubset(s2)) # False
print('superset : ', s1.issuperset(s2)) # False
print()
# 추가 & 제거
s1 = set([1, 2, 3, 4])
print('s1 - ', s1) # {1,2,3,4}
s1.add(5)
print('s1 - ', s1) # {1,2,3,4,5}
s1.remove(2)
print('s1 - ', s1) # {1,3,4,5}
s1.discard(3) # 3 제거
print('s1 - ', s1) # {1,4,5}
s1.discard(2) # 없는 값 제거 → 오류 없음
print('s1 - ', s1) # {1,4,5}
s1.clear()
print('s1 - ', s1) # set()
# 리스트도 clear 가능
a = [1, 2, 3, 4, 5]
print('a - ', a) # [1,2,3,4,5]
a.clear()
print('a - ', a) # []