인공지능/파이썬

파이썬 컬렉션 타입 - 세트

Ryuzy 2023. 9. 4. 17:42
728x90
반응형

1. 세트

세트(set) 중복되지 않는 항목들의 순서가 없는 컬렉션입니다. 중괄호 {} 사용하여 생성하거나 set() 생성자를 사용할  있습니다.

s1 = {1, 3, 5, 7}
print(s1)
print(type(s1))

s2 = {}
print(s2)
print(type(s2))

s3 = set([1, 3, 5, 7])
print(s3)
print(type(s3))

li4 = [1, 2, 3, 4]
print(type(li4))
s4 = set(li4)
print(s4)
print(type(s4))

s5 = {1, 3, 5, 3, 7, 9, 1, 5, 10, 7}
print(s5)

li6 = [1, 3, 5, 3, 7, 9, 1, 5, 10, 7]
print(li6)
s6 = set(li6)
print(s6)

 

 

2. 세트의 메소드

s1 = {1, 3, 5, 7}
print(s1)

# add(): 세트의 요소를 추가
s1.add(2)
print(s1)
s1.add(4)
print(s1)
s1.add(7)
print(s1)

 

s1 = {1, 3, 5, 7}
print(s1)

# update(): 세트에 여러 요소를 추가
s1.update([2, 4, 6, 8, 10])
print(s1)

 

s1 = {1, 3, 5, 7}
print(s1)

# remove(): 세트의 요소를 제거. 단 요소가 없으면 에러가 발생
s1.remove(3)
print(s1)
# s1.remove(3) # KeyError: 3

 

s1 = {1, 3, 5, 7}
print(s1)

# discard(): 세트의 요소를 제거. 단 요소가 없어도 에러가 발생하지 않음
s1.discard(3)
print(s1)
s1.discard(3)
print(s1)

 

s1 = {1, 3, 5, 7}
print(s1)

s2 = s1 # 메모리 주소를 복사
print(id(s1))
print(id(s2))

# copy(): 세트를 복사
s2 = s1.copy() # 값을 복사
print(s1)
print(s2)
print(id(s1))
print(id(s2))

 

s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}

# union(): 합집합을 계산하여 반환
result1 = s3.union(s4)
print(result1)

result2 = s3 | s4
print(result2)

 

s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}

# intersection(): 교집합을 계산하여 반환
result1 = s3.intersection(s4)
print(result1)

result2 = s3 & s4
print(result2)

 

s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}

# difference(): 차집합을 계산하여 반환
result1 = s3.difference(s4)
print(result1)

result2 = s3 - s4
print(result2)

 

s3 = {10, 20, 30, 40, 50}
s4 = {30, 40, 50, 60, 70}

# symmetric_difference(): 대칭 차집합을 계산하여 반환
result1 = s3.symmetric_difference(s4)
print(result1)

result2 = s3 ^ s4
print(result2)

 

 

728x90
반응형