본문 바로가기
파이썬

파이썬 자료형 - 세트 (Set) 이해하기

by python pro 2023. 1. 23.
반응형

Python에서 Set은 순서가 없고, 중복되지 않는 요소들로 구성된 자료형입니다. Set은 중괄호({})로 표현하며, 쉼표(,)로 구분합니다.

 

예를 들어, 아래와 같이 Set을 생성할 수 있습니다.

# 빈 Set 생성
numbers = set()

# 요소를 포함하는 Set 생성
numbers = {1, 2, 3, 4, 5}

# 중복되는 요소를 포함하는 Set 생성
numbers = {1, 2, 2, 3, 4, 5} # {1, 2, 3, 4, 5}

Set 요소에 접근하는 방법은 인덱싱(indexing)을 사용할 수 없습니다. Set은 순서가 없기 때문입니다.

# Set 요소 접근 (X)
print(numbers[0]) # TypeError

Set은 요소를 추가, 삭제, 수정 할 수 있습니다.

# Set 요소 추가
numbers.add(6)

# Set 요소 삭제
numbers.remove(4)

# Set 요소 수정 (X)
numbers[0] = 7 # TypeError

Set은 다양한 함수를 제공하며, 이를 활용하면 편리하게 Set을 사용할 수 있습니다.

# Set 길이
print(len(numbers)) # 5

# Set 요소 존재 여부
print(3in numbers) # True
print(7 in numbers) # False

#Set 연산
even = {2, 4, 6, 8}
odd = {1, 3, 5, 7}

#합집합
print(even.union(odd)) # {1, 2, 3, 4, 5, 6, 8, 7}

#교집합
print(even.intersection(odd)) # set()

#차집합
print(even.difference(odd)) # {2, 4, 6, 8}

#객체 복사
even_copy = even.copy()

#객체 초기화
even.clear()

 

아래는 예시를 공유해드려요.

# 중복되지 않는 요소들로 구성된 Set 생성
fruits = {"apple", "banana", "orange"}

# 요소 추가
fruits.add("mango")

# 요소 삭제
fruits.remove("banana")

# 요소 존재 여부 확인
print("orange" in fruits) # True

# 세트 길이
print(len(fruits)) # 3

# 합집합
fruits2 = {"kiwi", "orange", "grape"}
print(fruits.union(fruits2)) # {"orange", "apple", "mango", "kiwi", "grape"}

# 교집합
print(fruits.intersection(fruits2)) # {"orange"}

# 차집합
print(fruits.difference(fruits2)) # {"apple", "mango"}
반응형

댓글