우와한 개발자

[Python] 셋(set)이란? set의 특징과 주요 함수

by 우와한개발자

1. 셋(set)이란?

  • 중복 없이 값을 저장하는 자료형
  • 순서가 없음

2. 셋(set) 생성

  • 중괄호{} 를 사용해  생성
fruits={"apple","orange","banana", "peer", "apple"}
print(fruits) # {'orange', 'peer', 'banana', 'apple'} 중복❌ 순서❌

 

3. 주요 함수

 

1) 기본 조회

  • len(set_data) : 요소 개수

 

2) 요소 추가

  • set_data.add(value) = value 추가(1개만 가능, 기본형, 튜플 타입 가능, 리스트, 딕셔너리, 셋 타입 불가)
  • set_data.update(value) : 리스트, 튜플, 딕셔너리, 셋의 요소들을 추가할 때 사용. (딕셔너리는 key만 추가, 다차원 불가)
fruits={"apple"} # ❌TypeError
fruits.add(1,2,3) 
fruits.add("orange") # {"apple","orange"}
fruits.add(("peer","grape")) # {('peer', 'grape'), 'apple','orange'}


fruits.update([1,2,3]) # {('peer', 'grape'), 1, 2, 3, 'apple', 'orange'}
fruits.update([1,[2,3],4]) #  ❌TypeError 변경 불가능한 타입 불가

 

3) 합집합, 교집합, 차집합

  • & : 두 셋의 교집합
  • | : 두 셋의 합집합 
  • - : 두 셋의 차집합
a = {1,2,3}
b = {2,3,4}

print(a & b)   # 교집합 {2, 3}
print(a | b)   # 합집합 {1, 2, 3, 4}
print(a - b)   # 차집합 {1}

 

4) 요소 삭제

  • set_data.remove(value) : value 삭제
fruits={"apple","orange","banana","peer"}
fruits.remove("apple")

 

⚠️ set에서 0과 False
- 같은 값으로 취급됨
a={1,False,0} # {False, 1}
b={0,1,False} # {0,1}
a.remove(0) # a={1}​

 

5) 자료형 변환

  • set(data) : 다른 자료형을 셋으로 변환, 중복제거에 자주 사용
a = [1, 2, 2, 3, 3, 4]
b = set(a)
print(b)   # {1, 2, 3, 4}

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기