#26-파이썬 기초 실습 - 집합(Sets) - 2

2020. 2. 6. 08:03AI & BigData/Python Basics

파이썬 기초 실습 - 집합(Sets) - 2

세트의 주요 내장 메서드

1. union(). 합집합을 연산하여 출력한다.

In [1]:

set_a = set([4,5,6,7,8,9])
set_b = set([9,8,7])
set_b.union(set_a)

Out[1]:

{4, 5, 6, 7, 8, 9}

In [2]:

set_a.union(set_b) 

Out[2]:

{4, 5, 6, 7, 8, 9}

2. intersection(). 교집합을 연산하여 출력한다.

In [3]:

set_a = set([4,5,6,7,8,9])
set_b = set([9,8,7])
set_b.intersection(set_a)

Out[3]:

{7, 8, 9}

In [4]:

set_a.intersection(set_b)

Out[4]:

{7, 8, 9}

3. difference(). 차집합을 연산하여 출력한다.

In [5]:

set_a = set([4,5,6,7,8,9])
set_b = set([9,8,7])
set_b.difference(set_a)

Out[5]:

set()

In [6]:

set_a.difference(set_b)

Out[6]:

{4, 5, 6}

4. symmetric_difference(). 대칭차집합을 연산하여 출력한다.

In [7]:

set_a = set([4,5,6,7,8,9])
set_b = set([9,8,7])
set_b.symmetric_difference(set_a)

Out[7]:

{4, 5, 6}

In [8]:

set_a.symmetric_difference(set_b)

Out[8]:

{4, 5, 6}

5. update(). 객체의 합집합을 연산하여 객체에 저장한다.

In [9]:

set_a = set([1, 2, 3, 4])
set_b = set([3, 4, 5, 6])
set_a.update(set_b)
set_a

Out[9]:

{1, 2, 3, 4, 5, 6}

6. copy(). 얕은 복사(shallow copy)를 한다.

In [10]:

set_a = set([4,5,6,10,20,30])
set_b =set_a.copy( )
set_b

Out[10]:

{4, 5, 6, 10, 20, 30}

7. add(). 지정한 원소를 추가

In [11]:

set_a = set([1,2,3,4])
set_a.add(7)
set_a 

Out[11]:

{1, 2, 3, 4, 7}

7. remove(). 지정한 원소를 제거한다. 없으면 오류

In [12]:

set_a = set([1,2,3,4])
set_a.remove(4)
set_a 

Out[12]:

{1, 2, 3}

In [13]:

set_a.remove(4)
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-13-f42fe26467cb> in <module>
----> 1 set_a.remove(4)

KeyError: 4

In [14]:

set_a.remove()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-ecfd407386cd> in <module>
----> 1 set_a.remove()

TypeError: remove() takes exactly one argument (0 given)

8. discard(). remove()와 동일한 역할을 한다.

  • 하지만 없는 원소를 제거해도 에러가 안 나는 특징

In [15]:

set_a = set([1,2,3,4])
set_a.discard(4)
set_a

Out[15]:

{1, 2, 3}

In [16]:

set_a.discard(4)  # 에러가 발생하지 않는다.
set_a

Out[16]:

{1, 2, 3}

9. pop(). 맨 앞의 원소를 출력하고 반환

In [17]:

set_a = set([1,2,3,4,5,6,7,8,9])
set_a.pop()  # 맨 앞에 있는 1이 출력되고 반환됨.
set_a

Out[17]:

{2, 3, 4, 5, 6, 7, 8, 9}

In [18]:

set_a.pop(4)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-18-f1be5656bfa5> in <module>
----> 1 set_a.pop(4)

TypeError: pop() takes no arguments (1 given)

10. clear(). 모든 원소를 객체에서 제거한다.

In [19]:

set_a = set([1,2,3,4])
set_a.clear()
set_a

Out[19]:

set()

11. intersection_update(). 교집합을 연산하여 객체에 저장한다.

In [20]:

set_a = set([1, 2, 3, 4])
set_b = set([3, 4, 5, 6])
set_a.intersection_update(set_b)
set_a

Out[20]:

{3, 4}

12. difference_update(). 차집합을 연산하여 객체에 저장한다.

In [21]:

set_a = set([1, 2, 3, 4])
set_b = set([3, 4, 5, 6])
set_a.difference_update(set_b)
set_a  # {1, 2}

Out[21]:

{1, 2}

13. symmetric_difference_update(). 대칭 차집합을 연산하여 객체에 저장한다.

In [22]:

set_a = set([1, 2, 3, 4])
set_b = set([3, 4, 5, 6])
set_a.symmetric_difference_update(set_b)
set_a

Out[22]:

{1, 2, 5, 6}

In [23]:

set_a = set([4,5,6,10,20,30])
set_b = set([10,20,30])
set_b.issubset(set_a)

Out[23]:

True

In [24]:

set_a.issubset(set_b)

Out[24]:

False

In [25]:

set_a.issubset(set_a)

Out[25]:

True

14. issuperset(). 상위집합(초집합)의 경우 True, 아니면 False를 출력한다.

In [29]:

set_a = set([4,5,6,10,20,30])
set_b = set([10,20,30])
set_b.issuperset(set_a)

Out[29]:

False

In [30]:

set_a.issuperset(set_b)

Out[30]:

True

In [31]:

set_a.issuperset(set_a)

Out[31]:

True

In [ ]: