[Python] set() 이란

최더디·2021년 1월 31일
0
post-thumbnail

📌 set()이란 ?

set() 은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.
집합 자료형은 다음과 같이 set 키워드 를 사용해 만들 수 있다.

s1 = set([1,2,3])
print(s1)

# result : {1,2,3}

set()의 괄호 안에 리스트를 입력하여 만들 수 있고, 문자열을 입력해 만들 수도 있다.

s2 = set("hello")
print(s2)

# result : {'o', 'h', 'l', 'e'}

📌 set( )의 특징

  • 중복을 허용하지 않는다.
  • 순서가 없다.

리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만,
set 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.

만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트 or 튜플로 변환한 후 해야 한다.

s1 = set([1,2,3])

l1 = list(s1)
print(l1)		# result : [1,2,3]
print(l1[0])		# result : 1

t1 = tuple(s1)
print(t1)		# result : (1,2,3)
print(t1[0])		# result : 1

📌 교집합, 합집합, 차집합

내가 set에 대해 더 자세히 공부하고 글을 작성한 이유는 해당 파트 때문이다.
set 자료형을 정말 유용하게 사용하는 경우는 교집합, 합집합, 차집합을 구할 때이다.

s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])

1) 교집합

  • & 기호를 사용하여 교집합 구하기
s3 = s1 & s2
print(s3)	#result : {4,5,6}
  • intersection()을 사용하여 교집합 구하기
s3 = s1.intersection(s2)
print(s3)	#result : {4,5,6}

2) 합집합

  • | 기호를 사용하여 합집합 구하기
s3 = s1 | s2
print(s3)	#result : {1, 2, 3, 4, 5, 6, 7, 8, 9}
  • union()을 사용하여 합집합 구하기
s3 = s1.union(s2)
print(s3)	#result : {1, 2, 3, 4, 5, 6, 7, 8, 9}

3) 차집합

차집합을 구할 때는 어떤 집합이 앞에 오느냐에 따라 값이 달라진다.

  • -를 사용하여 차집합 구하기
s3 = s1 - s2
print(s3)	#result : {1, 2, 3}

s3 = s2 - s1
print(s3)	#result : {8, 9, 7}
  • difference()를 사용하여 차집합 구하기
s3 = s1.difference(s2)
print(s3)	#result : {1, 2, 3}

s3 = s2.difference(s1)
print(s3)	#result : {8, 9, 7}

📌 집합 자료형 관련 함수들

1) 값 1개 추가히기(add)

  • 이미 만들어진 set 자료형에 값을 추가할 수 있다.
s1 = set([1,2,3])
s1.add(4)
print(s1)	#result : {1, 2, 3, 4}

2) 값 여러개 추가하기(update)

s1 = set([1,2,3])
s1.update([4,5,6])
print(s1)	#result : {1, 2, 3, 4, 5, 6}

3) 특정 값 제거하기(remove)

s1 = set([1,2,3])
s1.remove(2)
print(s1)	#result : {1, 3}

📌 참고

profile
focus on why

0개의 댓글