집합(Sets)

김성우·2023년 12월 11일

파이썬실습(기초)

목록 보기
15/25
  • 집합 자료형(순서X, 중복X)
# 선언
a = set()
print(type(a))

b = set([1, 2, 3, 4, 4, 4, 4, 4])
c = set([1, 4, 5, 6])
d = set([1, 2, 'Pen', 'Cap', 'Plate'])
e = {'foo', 'bar', 'baz', 'foo', 'qux'} # 키가 없으면 가능
f = {42, 'foo', (1, 2, 3), 3.14159}
print('a = ', type(a), a)
print('b = ', type(b), b)
print('c = ', type(c), c)
print('d = ', type(d), d)
print('e = ', type(e), e)

# 튜플 변환(set -> tuple)
t = tuple(b)
print(type(t), t)
print(t[0], t[1:3])

# 리스트 변환(set -> list)
l = list(c)
l2 = list(e)

print(l)
print(l2)

# 길이
print(len(a))
print(len(b))
print(len(c))
print(len(d))
print(len(e))
print(len(f))

# 집합 자료형 활용
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print('s1 & s2 :', s1 & s2)
print('s1 & s2 :', s1.intersection(s2)) #intersection() 교집합 함수

print('s1 | s2 :', s1 | s2) 
print('s1 | s2 :', s1.union(s2)) # union() 합집합 함수

print('s1 - s2 :', s1 - s2)
print('s1 - s2 :', s1.difference(s2)) # difference() 차집합 함수  
# 중복 원소 확인
print('s1 & s2 :', s1.isdisjoint(s2)) # isidsjoint() 함수는 교집합이 있으면 False 없으면 Treue

# 부분 집합 확인
print(s1.issubset(s2))
print(s1.issuperset(s2))

# 추가, 제거
s1 = set([1, 2, 3, 4])

s1.add(5) # 추가
print(s1)

s1.remove(2) # 제거
print(s1)

s1.discard(3) # 제거 (없는 값을 넣어도 에러가 나지 않는다)
print(s1)

s1.clear() # 전체 제거
print(s1)

profile
빅데이터 정복하기

0개의 댓글