본문 바로가기
코딩공부

[python]set 집합 자료형 함수 / TIL_220916

by Dong_Devlog 2022. 9. 16.

백준 알고리즘의 정렬 단계를 진행하기 위해 set에 대해 다시 공부 !!

 

set 함수 특징

집합(set)은 자료형 함수로 집합에 관련된 것을 처리하기 위해 사용 된다.

집합함수는 중괄호{}를 사용해서 표기하지만 아래와 같이 빈 set 함수를 만들게 되면 딕셔너리로 나오게 된다.

a = {1, 2, 3}
b = {}

print(type(a))	# <class 'set'>
print(type(b))	# <class 'dict'>

 

그래서 set에 값을 추가하기 위해 add를 사용할 때 유의 해야 한다.

a에는 추가가 되지만 b는 딕셔너리기 때문에 에러가 나온다.

a = {1, 2, 3}
b = {}

a.add(4)
b.add(4)

print(a)	# {1, 2, 3, 4}
print(b)	# AttributeError: 'dict' object has no attribute 'add'

 

set은 중복이 안됨

a = {1, 1, 1, 2, 3, 1}

print(a)	# {1, 2, 3}

 

set은 순서 개념이 없음

그래서 숫자를 set함수를 통해 출력할 때 오름차순으로 출력된다.

a = {5, 3, 4, 2, 1}

print(a)	# {1, 2, 3, 4, 5}

 

순서 개념이 없기 때문에 set에 있는 요소를 꺼내서 사용할 수 없다.

그렇기 때문에 리스트로 전환해서 사용할 수 있다.

a = {1, 2, 3, 1, 1}

b= list(a)

print(b)	# [1, 2, 3]
print(b[1])	# 2

 

set에 값을 추가하거나 제거할 수 있다.

add : 값 1개 추가

update : 여러 개의 값 추가 (리스트 형태로 추가해주어야 한다)

remove : 특정 값 제거

a = {1, 2, 3, 4}

a.add(5)
print(a)	# {1, 2, 3, 4, 5}

a.update([6, 7, 8])
print(a)	# {1, 2, 3, 4, 5, 6, 7, 8}

a.remove(1)
print(a)	# {2, 3, 4, 5, 6, 7, 8}

 

댓글