티스토리 뷰

오늘은 파이썬 집합의 함수 및 메소드에 대해 정리해보려 합니다!

집합은 중복을 허용하지 않기 때문에, 알고리즘 문제에서 리스트의 원소의 중복을 제거해야할 일이 있을때, 집합으로 타입을 변환해서 중복되는 원소를 제거한 후 다시 리스트로 타입변환을 해서 사용하는 경우가 많이 있습니다. 

 

집합(Set)은 원소의 중복은 허용하지 않으면서 순서가 없는 자료형입니다.

# 집합

test_set = set() # 공집합 선언시 test_set = {} 하면, 공집합이 아닌 딕셔너리를 생성하게 됩니다.
test_set = {1,2,2,2,3,4,5}
print(test_set) #결과: {1, 2, 3, 4, 5} -> 중복 허용 X

 

합집합 & 교집합 & 차집합

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}


# 합집합 
print(s1|s2) #결과: {1, 2, 3, 4, 5, 6, 7, 8}
print(s1.union(s2)) #결과: {1, 2, 3, 4, 5, 6, 7, 8}

# 교집합
print(s1&s2) #결과: {4, 5}
print(s1.intersection(s2)) #결과: {4, 5}

# 차집합
print(s1-s2) #결과: {1, 2, 3}
print(s1.difference(s2)) #결과: {1, 2, 3}

 

● update() - 값 여러개 추가하기

s = {1,2,3,4,5}
s.update({7,8,9})
print(s) #결과: {1, 2, 3, 4, 5, 7, 8, 9}

 

s = {'a','b','c','d','e','f'}

print('a' in s) #결과: True
print('z' in s) #결과: False

s.add('g')
print(s) #결과: {'c', 'e', 'b', 'd', 'g', 'a', 'f'} -> 집합은 순서가 없어요!

s.remove('a')
print(s) #결과: {'c', 'e', 'b', 'd', 'g', 'f'}

s.discard('b')
print(s) #결과: {'c', 'e', 'd', 'g', 'f'}

print(s.pop()) #결과: c

s.clear()
print(s) #결과: set()
댓글
링크
최근에 올라온 글
최근에 달린 댓글