세트(set)는 중복되지 않는 항목
들의 컬렉션이다.
세트(set)는 중괄호 {}를 사용하여 생성하거나 set() 생성자를 사용하여 생성할 수 있다.
s1 = {} #set은 아무것도 넣지 않으면 기본 형태가 dict으로 나온다
print(s1)
print(type(s1))
s1 = {1, 3, 5, 7}
print(s1)
print(type(s1))
li1 = [1, 3, 5, 7]
print(type(s2))
s2 = set(li1)
print(s2)
print(type(s2))
보통 set() <- 생성자는 다른 타입의 컬렉션 객체를 set타입으로 변경할때 사용한다.
s3 = {1, 3, 5, 3, 7, 9, 1} # 알아서 중복된 값을 제거한 후 저장.
print(s3)
🖥️예제
s1 = {100, 200}
s1.add(150)
print(s1)
s1.add(50)
print(s1)
set는 리스트나 튜플과는 다르게 순사거 일정하지 않아 index가 없다.
🖥️예제
s1 = {100, 200}
s1.update([40, 50, 60, 20])
print(s1)
🖥️예제
s1 = {10, 20, 30}
s1.remove(20)
print(s1)
# s1.remove(20)
🖥️예제
s1 = {10, 20, 30}
s1.discard(30)
print(s1)
s1.discard(30)
print(s1)
🖥️예제
s1 = {10, 20, 30}
# copy() : 세트를 복사
s2 = s1.copy()
print(s1)
print(s2)
print(id(s1))
print(id(s2))
- 주소값을 카피하는게 아니라 안에 데이터를 복사하는거라 실제 주소값은 다른값으로 나온다.
- 주로 원본 데이터를 유지하고싶을때 자주 사용한다.
🖥️예제
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result = s1.union(s2)
result2 = s1 | s2
print(result)
print(result2)
🖥️예제
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result = s1.intersection(s2) # s1 & s2
result2 = s1 & s2
print(result)
print(result2)
🖥️예제
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.difference(s2) # s1 - s2
result2 = s2.difference(s1) # s2 - s1
result3 = s1 - s2
print(result3)
print(result1)
print(result2)
🖥️예제
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.symmetric_difference(s2) # s1 ^ s2
result2 = s1 ^ s2
print(result1)
print(result2)