[Python] 컬렉션 타입-세트

개린이·2023년 9월 9일
0

Python

목록 보기
10/20
post-thumbnail

세트

세트(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)

메서드

  1. add(): 세트에 항목을 추가하는 메소드

🖥️예제

s1 = {100, 200}
s1.add(150)
print(s1)
s1.add(50)
print(s1)

set는 리스트나 튜플과는 다르게 순사거 일정하지 않아 index가 없다.

  1. update(): 세트에 여러항목을 한번에 추가하는 메서드

🖥️예제

s1 = {100, 200}
s1.update([40, 50, 60, 20])
print(s1)

  1. remove(): 세트의 항목을 제거, 만약 그 항목이 세트에 없으면 keyError가 발생

🖥️예제

s1 = {10, 20, 30}
s1.remove(20)
print(s1)
# s1.remove(20)

  1. discard(): 세트의 항목을 제거, 제거할 항목이 없어도 에러가 발생하지 않음

🖥️예제

s1 = {10, 20, 30}
s1.discard(30)
print(s1)
s1.discard(30)
print(s1)

  1. copy(): 세트를 복사

🖥️예제

s1 = {10, 20, 30}
# copy() : 세트를 복사
s2 = s1.copy()
print(s1)
print(s2)
print(id(s1))
print(id(s2))

  • 주소값을 카피하는게 아니라 안에 데이터를 복사하는거라 실제 주소값은 다른값으로 나온다.
  • 주로 원본 데이터를 유지하고싶을때 자주 사용한다.
  1. union(): 두 세트의 합집합을 반환

🖥️예제

s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result = s1.union(s2)
result2 = s1 | s2
print(result)
print(result2)

  1. intersection(): 두 세트의 교집합을 반환

🖥️예제

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)

  1. difference(): 두 세트의 차집합을 반환

🖥️예제

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)

  1. symmetric_differenc(): 교집합을 제외한 나머지 여집합을 반환

🖥️예제

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)

0개의 댓글

관련 채용 정보