본문 바로가기
Development/Python

[Python] 파이썬 예제 - 데이터 형식 - 집합 Set

by 푸민 2020. 9. 22.
반응형

안녕하세요 푸민입니다.

자료 형식중에 집합 형식의 자료인 Set에 대해서 알아보겠습니다. 다른 리스트나 튜플과 같이 여러개의 데이터를 가지고 있는 형식이지만 다른 점이 있는데 중복을 허용하지 않는것과 순서가 없는것 입니다.


1. 집합 생성 - set

>>> set1 = set([1, 2, 3, 4, 5, 1, 2, 3])
>>> print(set1)
{1, 2, 3, 4, 5}
>>> set2 = set("I am Fumin")
>>> print(set2)
{'F', 'I', 'a', 'n', 'm', ' ', 'i', 'u'}

set1과 같이 숫자들의 배열을 set함수로 생성해주면 중복을 제거한뒤에 데이터를 가지고 있습니다. 마찬가지로 set2와 같이 문자열을 넣어줘도 띄어쓰기를 두번했지만 하나의 문자로 i 도 두번 나왔지만 하나의 문자로 가지고 있습니다.


2. 집합 연산 - 교집합, 합집합, 차집합

  • 교집합
>>> set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> set2 = set([5, 6, 7, 8, 9, 10])
>>> print(set1 & set2)
{5, 6, 7, 8, 9}
>>> print(set1.intersection(set2))
{5, 6, 7, 8, 9}

set1과 set2의 데이터의 교집합을 구하였습니다. & 연산자를 이용하여서 계산을 하고 두가지 집합이 모두 가지고 있는 데이터가 반환됩니다. 마찬가지로 intersection 함수를 이용해서 교집합을 할 수 있습니다.

  • 합집합
>>> set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> set2 = set([5, 6, 7, 8, 9, 10])
>>> print(set1 | set2)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
>>> print(set1.union(set2))
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

| 연산자를 이용하여 set1과 set2의 합집합을 구하였습니다. 역시 union 을 사용하여 구할 수 있습니다.

  • 차집합
>>> set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> set2 = set([5, 6, 7, 8, 9, 10])
>>> print(set1 - set2)
{1, 2, 3, 4}
>>> print(set1.difference(set2))
{1, 2, 3, 4}

- 연산자와 difference 함수를 사용하면 됩니다.


3. 집합 기능

  • 데이터 추가하기
>>> set1 = set([1, 2, 3, 4, 5])
>>> set1.add(10)
>>> print(set1)
{1, 2, 3, 4, 5, 10}
>>> set1.update([6, 7, 8])
>>> print(set1)
{1, 2, 3, 4, 5, 6, 7, 8, 10}

add 함수를 사용하면 한가지 항목을 추가할 수 있습니다. 여러가지 데이터를 추가하고 싶으면 update 함수를 사용하면 됩니다.

  • 데이터 제거하기
>>> set1 = set([1, 2, 3, 4, 5])
>>> set1.remove(3)
>>> print(set1)
{1, 2, 4, 5}

remove 함수를 이용하여 데이터를 삭제할 수 있습니다.

반응형

댓글