집합 자료형

honeyricecake·2022년 6월 26일
0

파이썬

목록 보기
5/26

집합 자료형은 어떻게 만들까?

집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.

집합 자료형은 다음과 같이 set 키워드를 사용해 만들 수 있다.

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

{1,2,3} 이 출력됨을 볼 수 있다.

다음과 같이 문자열을 입력하여 만들 수도 있다.

s2 = set("Hello")
print(s2)

이는 한번 더 출력하면 순서가 바뀜을 알 수 있고 또한 같은 글자가 2번 들어가지 않음을 알 수 있다.

집합 자료형의 특징

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

성질2로 인해 인덱싱을 지원하지 않는다.
인덱싱을 하려면 리스트나 튜플로 변환한 후 해야한다.

ex.

s2 = set("Hello")
l1 = list(s2)
print(l1)
print(l1[1])

리스트로 바꾸어도 set의 순서가 뒤죽박죽이므로 계속해서 list내의 index도 바뀐다.

위의 소스를 한번 더 실행하면 이를 확인할 수 있다.

교집합, 합집합, 차집합 구하기

set자료형을 정말 유용하게 사용하는 경우는 교집합, 합집합, 차집합을 구할 때이다.

&와 intersectiong함수 로 교집합을, |와 union함수 로 합집합을, -와 difference함수로 차집합을 구할 수 있다.

ex.

s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9,10}

print(s1&s2)
print(s1|s2)
print(s1 - s2)


위와 같은 결과가 나옴을 확인할 수 있다.

집합 자료형 관련 함수들

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

ex1 (리스트)

s1 = {1,2,3,4,5,6}
s1.update([7,8,9])
print(s1)

{1, 2, 3, 4, 5, 6, 7, 8, 9}가 출력된다.

ex2 (문자열)

s1 = {1,2,3,4,5,6}
s1.update("abc")
print(s1)

{1, 2, 3, 4, 5, 6, 'b', 'c', 'a'} 가 출력됐다.

  1. 특정값 제거하기 (remove)

0개의 댓글